在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);
当我的文本在大约10-15行内时,这可以正常工作。 但是,如果我输入40行文字,额外的文字行将超出我的UILabel并被切断。
如何向myLabel添加滚动功能,以便myLabel的最大高度仍为240,我可以向下滚动查看myLabel中额外的文本行?
答案 0 :(得分:107)
使用 UITextView (reference)。
它的目的就是做到这一点。禁用编辑,您将获得一个可滚动的标签。
答案 1 :(得分:1)
你可以在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用于增加或减少标签大小作为文本。