Как удалить границу из UIButtonBarItem в панели навигации iPad? - PullRequest
2 голосов
/ 03 мая 2011

После создания стандартного / стандартного приложения в стиле навигации я пытаюсь добавить кнопку перезагрузки на панель навигации в свой RootViewController. Следующее работает, однако добавляет границу к кнопке, что, насколько я могу судить, довольно нестандартно для приложений для iPad.

Как добавить кнопку без рамки?

- (void)viewDidLoad {
    if (reloadButton == nil) {
        reloadButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:  UIBarButtonSystemItemRefresh target: nil action: nil];
        reloadButton.style =  UIBarButtonItemStylePlain;
        reloadButton.target = self;
        reloadButton.action = @selector(reloadRates);
        self.navigationItem.rightBarButtonItem = reloadButton;
    } 
    ....
}

В конечном итоге это приложение предназначено как для iPhone, так и для iPad, но сейчас меня интересует только iPad.

Оказывается, что изменение стиля с UIBarButtonItemStylePlain на UIBarButtonItemStyleBordered приводит к той же кнопке с рамкой.

Ответы [ 2 ]

11 голосов
/ 10 января 2013

В XCode 4.5.2 просто установите BackgroundImage для кнопки на пустое изображение: (buttonSetup - это тип UIBarButtonItem)

[self.buttonSetup setBackgroundImage:[UIImage new] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
5 голосов
/ 03 мая 2011

Из Руководства по интерфейсу пользователя iOS:

Простой стиль - например, кнопка «Создать» на панели инструментов «Почта» использует простой стиль.Этот стиль подходит только для панелей инструментов.Фактически, если вы укажете простой стиль для кнопки на панели навигации, она преобразуется в стиль с рамками.

В большинстве приложений для iPad, которые вы видите, используется разделенное представление с UIToolbar насверху.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...