如何以编程方式在 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如果有帮助请点赞
好的,我已经回答过类似的问题,但其中 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如果有帮助请点赞