如何以编程方式在UIScrollView中添加UILabel?

时间:2016-01-11 06:56:28

标签: ios objective-c uiscrollview uilabel

好的,我已经经历了类似的问题,但没有一个有帮助。 我想在UIScrollView中添加一个UILabel,以便在内容很大时可以滚动Label。这是我的代码:

ViewController.h:

@interface ViewController : UIViewController
{
    UILabel *myLabel;
    UIScrollView *myScroll;
}

ViewController.h:

myLabel = [[UILabel alloc]initWithFrame:CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y+30, self.view.frame.size.width, self.view.frame.size.height)];

myScroll = [[UIScrollView alloc] initWithFrame:CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y+30, self.view.frame.size.width, self.view.frame.size.height)];

myLabel.backgroundColor = [UIColor yellowColor];

myLabel.text = @"Large random text";
[myLabel setNumberOfLines:0];
myLabel.lineBreakMode = NSLineBreakByWordWrapping;
[myLabel sizeToFit];

myScroll.contentSize = CGSizeMake(myLabel.frame.size.width,         
myLabel.frame.size.height);
[myScroll addSubview:myLabel];

[self.view addSubview:myScroll];

我在网上搜索了很多但找不到答案,有人能告诉我这是什么问题吗? 谢谢!

4 个答案:

答案 0 :(得分:0)

我不知道该怎么做,但我想建议一个可能适合您需求的替代品。使用UITextView,但设置“[textView userInteractionEnabled:NO]”,它将作为标签,因为它无法编辑。它可能最终看起来像你想要的。

答案 1 :(得分:0)

根据您的评论,您需要根据需要调整标签大小,以便它对于给定的文本足够大。然后将标签添加到滚动视图。然后设置滚动视图contentSize,使其适合整个标签。这将确保滚动视图允许您滚动以查看整个标签。

除此之外,请确保标签的框架相对于滚动视图而不是self.view。换句话说,将标签的框架原点设置为0,0将使标签位于滚动视图的左上角,而不管滚动视图相对于其父级的位置。

答案 2 :(得分:0)

尝试将下面的代码替换为contentSize,

myScroll.contentSize = CGSizeMake(self.view.frame.size.width,self.view.frame.size.height + 100);

希望它适用于你。

答案 3 :(得分:0)

1.您必须使用View(ContentView)来放置标签。

2.将ContentView添加到ScrollVIew。

3.根据需要分配ContentView大小

通过此链接,您将获得一个清晰的想法。 https://www.youtube.com/watch?v=UnQsFlMGDsI

删除scrollView = [[UIScrollView alloc] init];这不是必要的。如果有帮助,请提前投票。