UILabel внутри UIToolbar, использующего IB, невидима при запуске, как это исправить? - PullRequest
5 голосов
/ 03 июня 2009

Я хочу показать общее количество внутри панели инструментов. Я положил в IB UILabel сверху панели инструментов.

Однако, когда я запускаю приложение, UILabel становится полностью невидимым (но может точно устанавливать значения в коде).

Самое странное, что в другой форме все работает нормально. Я не понимаю, почему в одной форме работают, а не в другой ...

Есть идеи, как это исправить? Или почему происходит такое поведение?

Ответы [ 3 ]

21 голосов
/ 04 июня 2009

Не используйте UILabel.

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

Вы также можете создать UIBarButtonItem с пользовательским представлением в коде. Вы просто «оборачиваете» UILabel в UIBarButtonItem, позволяя вам добавлять на панель инструментов все, что вы хотите.


Добавить в ответ на комментарий:

В любом случае, вы делаете кнопку «неактивной», и она не реагирует на прикосновения. Несмотря на то, что это кнопка, она не выглядит таковой. Это то, как Apple ожидает добавления представлений на панель инструментов / панель навигации, в отличие от «плавающих вещей поверх нее». Он не нарушает руководящие принципы HIG, скорее наоборот, это рекомендуемая методика проектирования.

Чтобы остановить свечение: Создайте кнопку программно, убедитесь, что она отключена, добавьте ее на панель, затем она должна быть отключена, но не тусклая.

0 голосов
/ 26 марта 2013

перетащите UIButton в свой UIToolBar. Затем снимите флажок User Interaction Enables для этой кнопки.

Настройте UIButton так, чтобы он выглядел как UILabel. Надеюсь, это поможет вам.

UILabel into a UIToolbar

0 голосов
/ 04 июня 2009

В IB пытались ли вы выбрать метку и использовать пункт меню «Привести к шрифту» (в разделе «Макет»)? Кажется, вы пытаетесь сделать что-то довольно стандартное.

Когда вы пытаетесь установить значения, появляется ли метка как ноль или по адресу 0x0? Возможно, что метка есть, но ее текст не может быть установлен, потому что его экземпляр неисправен (неправильно подключен в IB к IBOutlet) .... Просто поставьте точку останова на строке, где вы пытаетесь установить значение (s). ) для метки и убедитесь, что переменная метки не равна nil (или 0x0). Если это не так, попробуйте установить текст и на следующей строке убедитесь, что его текст был задан правильно.

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