Определение ControlTemplate
для Listbox
, которое не включает ScrollViewer
, решает проблему. См. этот ответ и эти две страницы MSDN для получения дополнительной информации:
Убедитесь, что все подключено правильно. Убедитесь, что IBOutlet для поля UITextfield
настроен, и установите точки останова в методе и убедитесь, что код затрагивается. Если это так, возможно, percentCorrect
подключен неправильно.
Вам не нужно init
ваш ярлык, если он находится в кончике. Если да, то вы создали метку дважды. Итак, кто знает, кому вы пишете. Как только вы инициализировали этикетку, вы пропустили первую. Таким образом, ярлык на экране НЕ тот, которым вы управляете в коде.
Попробуйте вместо этого поместить свой код в viewDidLoad
. К тому времени он должен быть инициализирован.
Если это не сработает, попробуйте viewDidAppear:
просто попытаться отладить это.
Возможно, что percentCorrect
еще не инициализирован. Равно ли percentCorrect
nil
при вызове этой функции случайно? Если это так, подождите, пока он не будет правильно инициализирован, чтобы установить его свойства.
Чего вы ждете? Отображается ли метка, когда ваш код закомментирован? Как определяется процентCorrect в пере?
Вы пробовали:
- (void)awakeFromNib {
percentCorrect.adjustsFontSizeToFitWidth = YES;
percentCorrect.numberOfLines = 3;
percentCorrect.minimumFontSize = 100;
percentcorrent.text = @"What is the text in percentCorrect?";
}
У меня была такая же проблема. Кажется, что setText не вызывает автоматически перерисовку, когда изменение происходит в неосновном потоке. Обновления пользовательского интерфейса всегда должны выполняться в основном потоке, чтобы обеспечить оперативность. Есть другой способ принудительно выполнить это, используя селектор:
label = [[UILabel alloc] init]; //assumes label is a data member of some class
...
(some later method where you want to update the label)
...
[label performSelectorOnMainThread:@selector(setText) withObject:@"New label value" waitUntilDone:false];
Вы также можете получить результат, просто сказав:
[label setNeedsDisplay];
, что приведет к внутреннему обновлению, но по усмотрению SDK. Я обнаружил, что это не сработало для меня, поэтому я рекомендую селектор в основном потоке.
Чтобы параметр adjustsFontSizeToFitWidth
вступил в силу, свойство numberOfLines
должно быть установлено в 1. Оно не будет работать, если оно != 1.
Вызываются ли вообще awakeFromNib
, viewDidLoad
, viewWillAppear
?
Свойство minimumFontSize
ничего не сделает, если текст помещается в текущие границы с текущим шрифтом. Установили ли вы свойство шрифта для метки?
percentCorrect.font = [UIFont systemFontOfSize:20];
Наконец, не является ли minimumFontSize = 100
слишком большим для минимального размера шрифта?