如何将滚动功能添加到UILabel

Sha*_*eer 35 iphone xcode objective-c uilabel

在Xcode中,我创建了一个UILabel,它将根据我放置的文本行数进行自动调整.但我不希望UILabel的高度超过某个限制(在我的例子中为240),代码如下:

NSString *text = @"imagine this is a huge wall of text\n\n\n"
UILabel *myLabel = [[UILabel alloc] init];
[myLabel setNumberOfLines:0];
CGSize labelSize = [text sizeWithFont:myLabel.font constrainedToSize:CGSizeMake(280, 240) lineBreakMode:myLabel.lineBreakMode];
myLabel.frame = CGRectMake(0, 0, 280, labelSize.height);
Run Code Online (Sandbox Code Playgroud)

当我的文本在大约10-15行内时,这很好用.但是,如果我输入40行文本,那么额外的文本行将超出我的UILabel并被切断.

如何向myLabel添加滚动功能,以便myLabel的最大高度仍然是240,我可以简单地向下滚动查看myLabel中那些额外的文本行?

Pet*_*ski 111

使用UITextView(参考).

它的设计就是为了做到这一点.禁用编辑,您将获得一个可滚动的标签.

  • 请注意,UITextView不是UILabel的替代品.例如(从iOS 6开始),当您在具有属性文本的UILabel上设置字体时,该更改会"粘住"; 当您在UITextView上设置字体时,更改仅适用于UITextView上已有的任何属性 - 如果您指定了新的属性字符串,则之前设置的字体将不会被反映.(这是我今晚与此合作的经验,至少.) (5认同)