2010-11-04 6 views
6

я следующий на мой взгляд, сделал нагрузку на мой контроллер просмотра таблицы:UIButton в UIBarButtonItem не отображается

UIButton *change_view = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[change_view setTitle:@"List" forState:UIControlStateNormal]; 
[change_view addTarget:self action:@selector(toggleView:) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithCustomView: change_view];  
self.navigationItem.rightBarButtonItem = button;  

Когда я запускаю программу, она не показывает заголовок или кнопку скругленный прямоугольник. Однако, если я изменю тип на UIButtonTypeInfoLight, он появится ... так в чем проблема?

ответ

5

Попробуйте установить соответствующий фрейм на ваш change_view.

При использовании кнопки типа UIButtonTypeInfoLight используется некоторый встроенный размер (вероятно, зависит от используемого для него значка), при этом применяется UIButtonTypeRoundedRect тип кадра по умолчанию, который должен быть CGRectZero rect.

+0

как вы устанавливаете рамку кнопки? – aherlambang

+0

change_view.frame = CGRectMake (0,0, ширина, высота), с соответствующей шириной и высотой. Если вы используете разные строки для заголовка (например, локализуете его), вам может потребоваться рассчитать ширину динамически ... – Vladimir

14

Я бы предпочел, чтобы нижняя граница была установлена, чтобы установить границы кнопки.

[button setTitle:@"Title" forState:UIControlStateNormal]; 
[button sizeToFit]; 
Смежные вопросы