UILabel не показывает текст - PullRequest
0 голосов
/ 31 мая 2011

У меня есть UILabel

IBOutlet UILabel *lblMissionLevel;
[lblMissionLevel setFrame:CGRectMake(0, -55 , 177.0, 43.0)];

UIView *view= [[UIView alloc] initWithFrame:CGRectMake(11.0, 55.0, 480, 500)];
[view addSubview:lblMissionLevel];

и я устанавливаю текст с помощью

lblMissionLevel.text = @"My String";

Моя проблема в том, что большую часть времени он показывает правильный текст, но иногда он показывает просто

Label

Я не могу отследить проблему, поскольку она не соответствует.

Пожалуйста, помогите. Если кому-то нужны дальнейшие разъяснения, пожалуйста, спросите ..

Ответы [ 4 ]

1 голос
/ 31 мая 2011

Если это периодически, то вероятной причиной является предупреждение о нехватке памяти, что приведет к выгрузке любого неактивного представления. Если вы не выполняете повторную загрузку этого представления, вы увидите заголовок метки по умолчанию, как только представление снова станет активным (оно загрузится, но инициализация, которую вы выполняете с подписями меток и т. Д., Вероятно, не вызывается).

У меня было то же самое, пока я не заметил предупреждение о уровне памяти 1, и тогда это произойдет. Я добавил код для правильной перезагрузки представления (правильно установив заголовки всех элементов управления пользовательского интерфейса), и все было хорошо!

0 голосов
/ 31 мая 2011

Известно ли вам об установке отрицательного значения для вашего UILabel.

[lblMissionLevel setFrame:CGRectMake(0, -55 , 177.0, 43.0)];

Попробуйте напечатать содержимое lblMissionLevel.text после установки строкового значения.

lblMissionLevel.text = @"My String";
NSLog(@"My Label Text %@", lblMissionLevel.text);

Также проверьте расположение чертежа UILabel.

0 голосов
/ 31 мая 2011

Попробуйте это в строке выше, скорее всего ваш ivar не устанавливается с вашего пера

    NSAssert(lblMissionLevel, @"lblMissionLevel is nil");

Затем прочитайте о том, как использовать NSAssert действительно удобно

0 голосов
/ 31 мая 2011

У меня иногда возникала такая проблема, лучше всего применять (в заголовке вашего класса)

@property(nonatomic, retain) UILabel *lblMissionLevel;

, а затем убедитесь, что вы позвонили self. до lblMissionLevel.text = @"My String";

Не забудьте синтезировать после указания реализации класса

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