iPhone: создание UIBarButtonItem, который является сформированной стрелкой

У меня есть UIBarButtonItem на панели навигации. Я хотел бы сделать это стрелкой сформированный. Этим я подразумеваю, что хочу, чтобы это было квадратным за исключением заостренной стороны. Кто-либо знает, как сделать это?

Спасибо!

11
задан WoodenKitty 24 February 2010 в 22:33
поделиться

3 ответа

Я боролся с несколькими подходами по этому поводу и, наконец, понял его, используя все ответы из нескольких источников. Есть пара уловок; этот фрагмент покажет все это (я создавал собственный rightNavButton , но вы можете легко адаптировать его для любого UIBarButtonItem ):

// Produces a nice "right arrow" style button that mirrors the back arrow
// automatically added by the navController
//
UIImage *buttonImage = [UIImage imageNamed:@"forwardButton.png"];
UIButton *forwardButton = [UIButton buttonWithType:UIButtonTypeCustom];
[forwardButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
[forwardButton setTitle:@"Meter" forState:UIControlStateNormal];
forwardButton.font = [UIFont boldSystemFontOfSize:12];
forwardButton.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);
[forwardButton addTarget:self action:@selector(showMeter) 
           forControlEvents:UIControlEventTouchUpInside];

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
           initWithCustomView:forwardButton];

Примечание: оказывается, что если вы попытаетесь установите цель и действие непосредственно для элемента кнопки после назначения пользовательского представления с помощью UIButton , которого он не будет выполнять - вы должны установить цель и действие для самой кнопки - очевидно, navBar использует дословно предоставленную кнопку.

Это изображение, которое я использовал на непрозрачном черном navBar (очевидно, вы можете использовать что угодно): http://raretiger.com/images/forwardbutton.png

17
ответ дан 3 December 2019 в 03:18
поделиться

Создайте собственный фон. См. Создание кнопки со стрелкой влево (например, стиля «назад» UINavigationBar) на UIToolbar , чтобы узнать, как это сделать.


Вы можете -pushNavigationItem: animated: , чтобы отображалась встроенная кнопка возврата, хотя вы не можете назначать ей настраиваемые действия.


Для недокументированных методов вы можете использовать

UIButton* backButton = [UIButton buttonWithType:101];

для создания «кнопки возврата».

7
ответ дан 3 December 2019 в 03:18
поделиться

Вы можете создать UIImageView или UIButton с требуемым изображением, а затем использовать:

[[UIBarButtonItem alloc] initWithCustomView: arrowButton];

Надеюсь, это поможет.

4
ответ дан 3 December 2019 в 03:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: