Почему мой UILabel не изменяет?

Определение ControlTemplate для Listbox, которое не включает ScrollViewer, решает проблему. См. этот ответ и эти две страницы MSDN для получения дополнительной информации:

ControlTemplate

ListBox Стили и шаблоны

6
задан 6 June 2009 в 14:38
поделиться

6 ответов

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

2
ответ дан 8 December 2019 в 04:55
поделиться

Вам не нужно init ваш ярлык, если он находится в кончике. Если да, то вы создали метку дважды. Итак, кто знает, кому вы пишете. Как только вы инициализировали этикетку, вы пропустили первую. Таким образом, ярлык на экране НЕ тот, которым вы управляете в коде.

Попробуйте вместо этого поместить свой код в viewDidLoad . К тому времени он должен быть инициализирован.

Если это не сработает, попробуйте viewDidAppear: просто попытаться отладить это.

2
ответ дан 8 December 2019 в 04:55
поделиться

Возможно, что percentCorrect еще не инициализирован. Равно ли percentCorrect nil при вызове этой функции случайно? Если это так, подождите, пока он не будет правильно инициализирован, чтобы установить его свойства.

0
ответ дан 8 December 2019 в 04:55
поделиться

Чего вы ждете? Отображается ли метка, когда ваш код закомментирован? Как определяется процентCorrect в пере?

Вы пробовали:

- (void)awakeFromNib {
    percentCorrect.adjustsFontSizeToFitWidth = YES;
    percentCorrect.numberOfLines = 3;
    percentCorrect.minimumFontSize = 100;
    percentcorrent.text = @"What is the text in percentCorrect?";
}
0
ответ дан 8 December 2019 в 04:55
поделиться

У меня была такая же проблема. Кажется, что 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. Я обнаружил, что это не сработало для меня, поэтому я рекомендую селектор в основном потоке.

0
ответ дан 8 December 2019 в 04:55
поделиться
  1. Чтобы параметр adjustsFontSizeToFitWidth вступил в силу, свойство numberOfLines должно быть установлено в 1. Оно не будет работать, если оно != 1.

  2. Вызываются ли вообще awakeFromNib, viewDidLoad, viewWillAppear?

  3. Свойство minimumFontSize ничего не сделает, если текст помещается в текущие границы с текущим шрифтом. Установили ли вы свойство шрифта для метки?

    percentCorrect.font = [UIFont systemFontOfSize:20];

  4. Наконец, не является ли minimumFontSize = 100 слишком большим для минимального размера шрифта?

20
ответ дан 8 December 2019 в 04:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: