2014-01-26 2 views
7

Я пытаюсь настроить UIButton, и я хочу использовать стиль UIBarButtonSystemItem, который доступен для объекта UIBarButtonItem.Могу ли я использовать UIBarButtonSystemItem для UIButton?

Как использовать стиль UIBarButtonSystemItem на объекте UIBUtton?

+0

Вы можете найти образы системы для любых кнопок с помощью этого экстрактора: https://github.com/0xced/iOS-Artwork-Extractor и использовать их для кнопок – Sauvage

ответ

8

Вы не можете. UIBarButton и UIButton - это два совершенно разных класса. Лучшее, что вы можете сделать, это найти изображения, близкие к тому, что вы ищете, и добавить их в UIButtons.

2

С наследованием о UIBarButtonItem и UIButton:

UIBarButtonItem-> UIBarItem-> NSObject

UIButton-> UIControl-> UIView-> UIResponder-> NSObject

вы можете видеть, есть невозможно использовать UIBarButtonSystemItem для UIButton, UIBarButtonItem и UIButton, которые обычно наследуются от NSObject.

0

Вы можете использовать их только на панели инструментов на навигационной панели.

обходной путь/хак может быть использование UIToolbars, где вы хотите UIBarButtons быть размещены

4

Используйте UIView вместо UIButton, который содержит UIToolbar с UIBarButtonItems.

UIView *buttonContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 80, 44)]; 
buttonContainer.backgroundColor = [UIColor clearColor]; 
UIToolbar *dummyBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 80, 44)]; 

UIBarButtonItem *b1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(doSomething:)]; 
UIBarButtonItem *b2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(doSomething:)]; 

NSArray *items = [[NSArray alloc] initWithObjects:b1, b2, nil]; 

[dummyBar setItems:items]; 

[buttonContainer addSubview:dummyBar]; 

... 

-(void)doSomething:(id)sender 
{ 
    NSLog(@"Button pushed"); 
} 
Смежные вопросы