将UI元素添加到UIScrollView?

时间:2014-01-16 01:11:55

标签: ios objective-c uiview uiscrollview storyboard

我有一个滚动视图。在滚动视图中,我添加了许多必要的UILabel和UIButtons等。

现在我想添加 MORE 标签和按钮,但我在视图的界面上没有空间来添加它们,否则它们将与其他元素重叠。如何添加更多UI元素,以便在用户滚动时可以与它们进行交互?我在想如果我把UIelement放在滚动视图的底部,滚动会“向下滚动”并向我展示更多空间。

我是iOS设计的新手,所以请光临我。三江源。

3 个答案:

答案 0 :(得分:1)

在Interface Builder中,据我所知,你无法滚动Scrollview。 如果您只想在Interface Builder中的滚动视图中添加更多标签和按钮,则可以在Freeform中设置将您的滚动视图保持为Attribute Inspector的视图控制器的大小。然后,您可以将视图的大小设置为Size Inspector中所需的任何值。之后,您可以更改滚动视图的大小以添加更多标签和按钮。

答案 1 :(得分:1)

这里的关键是要记住视图控制器在nib(.xib文件或故事板)中的主视图总是在放入界面时调整大小。你在nib编辑器(Interface Builder)中看到它的大小只是一个“服务建议”。因此,SamirChen的答案非常正确:将视图设置为Freeform,这样您就可以调整大小,并使其足够大以容纳滚动视图,该滚动视图本身足够大,以便您可以放入所有需要的内容。

我只会添加两点你会发现有用的内容:

  • 在滚动视图外使用autolayout。这将导致滚动视图在调整视图大小以适合界面时变为正确的大小,并将导致其他所有内容正确重新定位。

  • 在滚动视图中也使用autolayout!这是非常酷的部分。如果您在滚动视图的所有内容和滚动视图本身(他们的超级视图)之间设置了足够的约束,那么将使用由内到外的约束自动为您计算contentSize!因此,您不必知道内容大小或在代码中设置它!

更容易看到而不是描述,因此请下载example code from my book并查看当前名为“bk2ch07p367scrollViewInNibAutolayout”和“bk2ch07p367scrollViewInNibAutolayout2”的示例。

答案 2 :(得分:0)

“您可以在.xib文件中设计一个包含所有这些内容的UIView,并根据需要调整视图大小,然后将其放入viewDidLoad中的滚动视图中”,这是@nhgrif引用的。

不要忘记更改滚动视图的contentSize属性以符合UIView的界限。