Название для UIButton не появится - PullRequest
0 голосов
/ 23 января 2012

Итак, я пытаюсь создать пользовательский элемент UIBarButtonItem, но я не могу понять, почему название не будет отображаться. Может быть, кто-то еще может заметить это: \

Вот код, который я использую для создания кнопки панели:

+ (UIBarButtonItem *)barButtonItemWithTitle:(NSString *)title normal:(UIImage *)normal highlighted:(UIImage *)highlight selected:(UIImage *)selected target:(id)target action:(SEL)action
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

    [button setFrame:CGRectMake(0.0f, 0.0f, normal.size.width, normal.size.height)];
    [button setTitle:title forState:UIControlStateNormal];
    [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [button addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
    [button setImage:normal forState:UIControlStateNormal];
    [button setImage:selected forState:UIControlStateHighlighted];
    [button setImage:selected forState:UIControlStateSelected];

    return [[UIBarButtonItem alloc] initWithCustomView:button];
}


self.navigationItem.leftBarButtonItem = [UIBarButtonItem barButtonItemWithTitle:@"Cancel"
                                                                         normal:[UIImage imageNamed:@"back_button_active.png"] 
                                                                    highlighted:[UIImage imageNamed:@"back_button_highlight.png"] 
                                                                       selected:[UIImage imageNamed:@"back_button_selected.png"] 
                                                                         target:self 
                                                                         action:@selector(popViewController)];

Любая помощь будет оценена!

P.S. Это в iOS 5 с использованием ARC.

1 Ответ

1 голос
/ 23 января 2012

заголовок и изображение являются взаимоисключающими свойствами в UIButton.Если вы хотите иметь заголовок с пользовательским фоном, вам следует использовать свойство backgroundImage:

...
[button setBackgroundImage:normal forState:UIControlStateNormal];
[button setBackgroundImage:selected forState:UIControlStateHighlighted];
[button setBackgroundImage:selected forState:UIControlStateSelected];
...
...