如何在UILabel中添加滚动功能



在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用于增加或减少作为文本的标签大小。

最新更新