Создание кнопки со стрелкой влево (например, стиль «назад» UINavigationBar) на панели инструментов UIToolbar - PullRequest
286 голосов
/ 22 октября 2008

Я бы хотел создать кнопку «назад» влево-стрелка в UIToolbar.

Насколько я могу судить, единственный способ получить один из них - оставить UINavigationController с настройками по умолчанию, и он использует один для элемента левой панели. Но я не могу найти способ создать его как UIBarButtonItem, поэтому я не могу сделать его в стандартном UIToolbar, даже если они очень похожи на UINavigationBar s.

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

Какие-нибудь идеи помимо скриншотов для каждого размера и цветовой схемы, которые я собираюсь использовать?

Обновление: ПОЖАЛУЙСТА, ОСТАНОВИТЕСЬ, уклоняясь от вопроса и предлагая мне не задавать этот вопрос и использовать UINavigationBar Мое приложение - Instapaper Pro. Он показывает только нижнюю панель инструментов (для экономии места и максимизации читаемой области содержимого), и я хочу поместить кнопку Back в форме стрелки влево внизу.

Сказать, что мне не нужно это делать - не ответ и, конечно, не заслуживает награды.

Ответы [ 23 ]

0 голосов
/ 23 октября 2008

Почему ты это делаешь? Если вы хотите что-то похожее на панель навигации, используйте UINavigationBar.

Панели инструментов имеют определенный визуальный стиль, связанный с ними. Руководство по интерфейсу пользователя для состояния iPhone:

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

Затем приводится несколько наглядных примеров примерно квадратных значков без текста. Я призываю вас следовать HIG по этому вопросу.

0 голосов
/ 25 февраля 2017

Свифт

// create button
    var backButton = UIButton(type: 101)

    // left-pointing shape!
    backButton.addTarget(self, action: #selector(self.backAction), for: .touchUpInside)
    backButton.setTitle("Back", for: .normal)

    // create button item -- possible because UIButton subclasses UIView!
    var backItem = UIBarButtonItem(customView: backButton)

    // add to toolbar, or to a navbar (you should only have one of these!)
    toolbar.items = [backItem]
    navItem.leftBarButtonItem = backItem
0 голосов
/ 22 октября 2008

Ну, вам не нужно иметь разные кнопки для каждого размера, вы можете использовать [UIImage stretchableImageWithLeftCapWidth:topCapHeight:], но единственное, что я нашел, это пользовательские изображения.

...