添加UIScrollView以查看并将其发送到后面

时间:2012-09-18 12:05:41

标签: iphone objective-c uiscrollview

我使用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置于主视图的所有其他元素下面?

4 个答案:

答案 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:

中声明detailsLabel
IBOutlet 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。您还可以设置其文本编辑属性。