Усечение текста заголовка UIButton - PullRequest
5 голосов
/ 23 декабря 2011

У меня есть кнопка UIB, которая установлена ​​в XIB как 147 пикселей в ширину и 30 в высоту.Он имеет текст по умолчанию «Навигация».В ходе приложения я установил заголовок «Global».Позже я установил для него значение «Сводка», а это отображение «Su ... ry».

Я прочитал так много вещей, которые говорят, чтобы установить метку по умолчанию для кнопки UIB быть длиннее, чем самый длинный текст, однако «Сводка» короче, чем «Навигация».Текстовая область, кажется, уменьшается во время приложения.

Я не перезагружаю представление.Мое приложение преимущественно удаляет элементы из стандартного прокрутки экрана и пополняется новыми данными.

Я использовал

button.titlelabel.text = @"Summary";

, однако я получал случаи, когда это не приводило к отображению текстапоэтому начинаем использовать

[button setTitle:@'Summary' forState:UIControlStateNormal];

, который работал каждый раз.

Есть ли способ заставить текстовую область внутри кнопки UIB сброситься до отображаемого текста?Я бы предпочел не создавать кнопки на лету, и если это функция target-c, я бы посчитал это ошибкой.

Заранее спасибо.Крис Н

1 Ответ

8 голосов
/ 23 декабря 2011

Это не ошибка Objective-C.Objective-C - это язык программирования.Если что-то не так, то это UIKit, который является каркасом пользовательского интерфейса Apple для iOS.

Проблема в том, что ваша кнопка не изменит размер - это не то, как был разработан API для UIButton.Вы можете решить эту проблему, изменив размер кнопки самостоятельно после установки заголовка.Вы можете определить, насколько большим должен быть текст:

CGSize requiredSize = [[button titleForState:UIControlStateNormal] sizeWithFont:button.titleLabel.font];

Затем вы можете использовать его, чтобы сделать его немного больше по ширине и высоте, и установить frame из button на это.

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