在Xcode中,我创建了一个UILabel,它将根据我放在上面的文本行数自动进行resize。但我不希望UILabel的高度超过一定的限制(在我的例子中是240),代码如下:
NSString *text = @"imagine this is a huge wall of textnnn"
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);
当我的文本在大约10-15行以内时,这很好。但是,如果我输入大约40行的文本,多余的几行文本将超出我的UILabel并被截断
如何在myLabel中添加滚动功能,使myLabel的最大高度仍然为240,并且我可以简单地向下滚动以查看myLabel中的额外文本行?
使用UITextView(参考)。
它的设计正是为了做到这一点。禁用编辑,你会得到一个可滚动的标签。
您可以像这样在UIScrollView上添加UILabel,也可以这样做---
scrollView.backgroundColor = [UIColor clearColor];
UILabel * label = [[UILabel alloc] init];
[label setNumberOfLines:0];
label.text=[detailDict valueForKey:@"ABC"];
[label setFont:[UIFont fontWithName:@"Georgia" size:16.0]];
CGSize labelsize=[label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(250, 1000.0) lineBreakMode:UILineBreakModeWordWrap];
int y=0;
label.frame=CGRectMake(38, y, 245, labelsize.height);
[label setBackgroundColor:[UIColor clearColor]];
[label setTextColor:[UIColor whiteColor]];
scrollView.showsVerticalScrollIndicator = NO;
y+=labelsize.height;
[scrollView setContentSize:CGSizeMake(200,y+50)];
[scrollView addSubview:label];
[label release];
这里,Y用于增加或减少作为文本的标签大小。