我使用Storyboard(UILabel,UIImageView)添加了一些UI组件。我试图将UIScrollView放在此视图中,低于所有其他元素:
以下是-viewWillAppear
方法末尾的代码(来自我的View Controller的代码):
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroll.contentSize = CGSizeMake(320, 480);
scroll.showsVerticalScrollIndicator = YES;
[self.view addSubview:scroll];
[self.view sendSubviewToBack:scroll];
我需要UIScrollView
的原因是detailsLabel
中的大量文本 - 我附加了用于以编程方式处理此标记的代码:
detailsLabel.text = @"Some long text taken from databse";
[detailsLabel sizeToFit];
detailsLabel.numberOfLines = 0;
detailsLabel.lineBreakMode = UILineBreakModeWordWrap;
我做错了什么?如何将UIScrollView置于主视图的所有其他元素下面?
答案 0 :(得分:1)
试试这个:
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroll.contentSize = CGSizeMake(320, 480);
scroll.showsVerticalScrollIndicator = YES;
[self.view insertSubview:scroll atIndex:0];
...
[self.view insertSubview:detailsLabel atIndex:1];
答案 1 :(得分:0)
将您的代码放入ViewDidLoad
。将UIScrollView
添加到ViewDidLoad
本身的self.View后添加标签。因此,默认情况下,UIScrollView
将添加到self.View上,然后添加到您的标签上。现在,您可以在scrollview上添加标签,也可以在self.view上添加标签。
答案 2 :(得分:0)
我已按照this answer中的说明进行操作,效果很好:我已将Identity Inspector中的自定义类从UIView更改为UIScrollView,并将此行添加到View Controller文件中的-viewDidLoad
:
[(UIScrollView *)self.view setContentSize:CGSizeMake(320, 700)];
答案 3 :(得分:0)
选项一:
在.h:
中声明detailsLabelIBOutlet UILabel * detailsLabel; // MAP IT WITH NIB or STORYBOARD
在.m。
中给它属性和Synthesise这里是viewDidLoad声明:
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
scroll.contentSize = CGSizeMake(320, 480);
scroll.showsVerticalScrollIndicator = YES;
[self.view addSubview:scroll];
[self.view sendSubviewToBack:scroll];
[scroll addSubview:detailsLabel];
//它应该工作。
选项二:
如果要显示大量文本,那么您也可以使用UITextView,它具有内置的scrollview。您还可以设置其文本编辑属性。