2012-06-30 2 views
0

Я использую UILabel для отображения пользовательского ввода. Если пользовательский ввод похож на «xxxxx xxxx xxxx xxxx xxx xxxx xxx xxx», он отлично отображается на UILabel. Но при вводе чего-то вроде «xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx» вызывает проблему. Этот текст не будет отображаться на UILabel.UILabel не отображает текст ввода пользователя

Я использую следующий код для функциональности UILabel.

-(void)displayText:(NSString *)text 
{ 
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(75,50,30,50)]; 
label.text = text; 
label.numberOfLines = 10; 
label.lineBreakMode = UILineBreakModeWordWrap; 
[self.view addSubview:label]; 
[label release]; 
} 

Я изменил режим прерывания строки UILineBreakModeCharacterWrap, UILineBreakModeClip, UILineBreakModeHeadTruncation, UILineBreakModeTailTruncation и UILineBreakModeMiddleTruncation. Но проблема все еще существует. Я знаю, что проблема связана с входным текстом без пробелов, но как исправить это. Пожалуйста, помогите мне найти решение. Заранее спасибо.

+0

Когда вы говорите, «Этот текст не будет отображаться», вы имеете в виду, что он не будет частично отображаться/вообще ничего? – Stavash

+0

@stavash: ничего нет –

ответ

0

Ваш текст больше, чем размер этикетки, вы можете укоротить его (голова, середина, хвост), или вы можете сделать шрифт меньше

0

Заменить [self.view addSubview:label]; вместо [self.view addSubView:label];

Я думаю, что это будут полезны для вас.

+0

В чем разница? – Stavash

+0

Здесь v - маленькое письмо, а не столица. –

+0

Получил. Но если это была проблема, я думаю, что будет задействован крушение. Вероятно, просто тип-о. – Stavash

1

Сначала вам нужно найти высоту текста, а затем вам нужно присвоить эту высоту метке.

и set numberOfLines = 0;

вы можете найти высоту от этой функции

CGFloat height = [text sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(yourlabel.frame.size.width - 10, 9999) lineBreakMode:UILineBreakModeWordWrap].height; 
Смежные вопросы