1

我使用 Storyboard(UILabel、UIImageView)添加了一些 UI 组件。我正在尝试将 UIScrollView 放在此视图中,位于所有其他元素下方:

这是我在方法末尾的-viewWillAppear代码(来自我的视图控制器的代码):

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];

我需要 a 的原因UIScrollView是大量文本detailsLabel- 我正在附加用于以编程方式处理此标签的代码:

    detailsLabel.text = @"Some long text taken from databse";
    [detailsLabel sizeToFit];
    detailsLabel.numberOfLines = 0;
    detailsLabel.lineBreakMode = UILineBreakModeWordWrap;

我做错了什么?如何将 UIScrollView 放在主视图的所有其他元素下方?

4

4 回答 4

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];
于 2012-09-18T13:50:30.007 回答
0

将您的代码放入ViewDidLoad. 然后在将标签添加UIScrollView到 self.View后添加标签ViewDidLoad。因此,默认情况下,UIScrollView将添加到 self.View 然后是您的标签。现在您可以在滚动视图或 self.view 上添加标签。

于 2012-09-18T12:09:54.983 回答
0

我已按照此答案中的说明进行操作,效果很好:我已将 Identity Inspector 中的自定义类从 UIView 更改为 UIScrollView 并将这一行添加到我-viewDidLoad的 View Controller 文件中:

[(UIScrollView *)self.view setContentSize:CGSizeMake(320, 700)];
于 2012-09-18T14:22:00.620 回答
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,它有内置的滚动视图。您还可以设置其文本编辑属性。

于 2012-09-24T12:42:59.403 回答