2011-12-22 3 views
5

У меня есть UIButton, который установлен в XIB как 147 пикселей в ширину и 30 в высоту. У него есть текст по умолчанию «Навигация». Во время подачи заявки я установил заголовок «Глобальный». Позже я установил t0 'Summary' и этот дисплей как «Su ... ry».UIButton title text truncating

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

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

Я использую

button.titlelabel.text = @"Summary"; 

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

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

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

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

Заранее спасибо. Chris H

ответ

8

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

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

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

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

+0

Спасибо, Извините, как относительно новый человек, я не могу различать различные компоненты. Спасибо за разъяснение и решение. –

Смежные вопросы