为什么我不能直接向UIScrollView添加内容?

时间:2013-03-06 09:39:22

标签: iphone objective-c ios5

我是iOS编程新手,也许我不完全理解UIScrollView。根据我所研究的内容,制作滚动视图的所有方法都包括将UIViewUIImageView嵌入到UIScrollView中。但是,我不知道是否有办法将对象(UILabelUIButton ...)直接拖到UIScrollView。如果UIScrollView的大小设置为大于屏幕,那么UIScrollView上的所有内容都是可滚动的。再一次,这是我的所有想法,我没有找到任何帖子来确认或否认这一点。我认为如果可行,那么它是设置可滚动屏幕的最简单方法。

如果那不可能,那么有人能指出一种简单的方法来滚动UIButton的长列表(仅垂直)吗?我找到了很多教程,但大部分用于滚动UIImageView,我无法将该方法用于包含UIView列表的UIButton。非常感谢帮助我。

我在iOS 5和故事板模式下。

4 个答案:

答案 0 :(得分:2)

由于UIImageViewUILabelUIButtonUIView的后代,您可以使用addSubview:方法添加这些类的实例。

您还需要正确设置视图的帧。

如果您希望滚动内容大小大于屏幕大小,则需要将scrollView.contentSize设置为所需值。

答案 1 :(得分:1)

原因。案例UILabelUIButton ...是subClass的{​​{1}}。您可以将UIView添加到UIView,也可以添加ScrollView,也可以UIScrollView,因为它也来自UIView

使用View包含button,您可以轻松管理按钮。

你应该计算按钮的所有帧。如果它们有相同的布局功能,你想使用tableView

答案 2 :(得分:0)

Scrollview非常适合documentsimageswebviews等...

但是对于布局用户界面来说,这有点痛苦。

如果您只是垂直布置buttons,那么您可能希望使用UITableView来管理布局。

UITableView不仅仅是显示数据列表。

如果您想坚持使用scrollView,那么您可以创建一个新的UIView nib文件并将其设置为您想要的完整大小。将所有按钮拖入其中,然后使用代码将UIView放入scrollView

通过IB拖动按钮,您仍然使用代码将所有buttons等放入scrollview

答案 3 :(得分:0)

在故事板中,我建议不要直接在滚动视图中添加UILabel等。它可以完成,但我发现直接在滚动视图的包含视图中只有一个视图(或非常fiew)更容易。特别是当单个视图大于屏幕时。

这就是为什么我建议创建一个简单的UIView对象。使用自由式大小在IB中绘制UIView。这应该是滚动视图的唯一直接子视图。在该视图中,您可以轻松排列和重新排列所有ui项目。但请确保您不使用autolayout并且您的视图不会调整子视图的大小,并且滚动视图不会自动调整子视图的大小。否则,应该比屏幕大的适当的布局视图可以被静音到屏幕(分别是窗口的可用部分)尺寸中。