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

How to add a UILabel inside a UIScrollView programatically?

好的,我已经回答过类似的问题,但其中 none 对我有所帮助。 我想在 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];

我在互联网上搜索了很多但没有找到答案,谁能告诉我问题出在哪里? 谢谢!

我不确定该怎么做,但我想推荐一个可能适合您需要的替代方案。使用 UITextView,但设置“[textView userInteractionEnabled:NO]”,它将充当标签,因为它无法编辑。它最终可能看起来像你想要的那样。

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

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

尝试像下面的代码一样替换您的 contentSize,

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

希望对你有用。

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

2.Add将ContentView改成ScrollVIew。

3.Assign ContentView 大小随心所欲

通过这个Link,你会得到一个清晰的思路。 https://www.youtube.com/watch?v=UnQsFlMGDsI

移除scrollView = [[UIScrollView alloc] init];这不是necessary.Please如果有帮助请点赞