2013-03-06 50 views
0

我是新来的iOS编程,也许我不完全了解UIScrollView。从我研究的内容来看,制作滚动视图的所有方法都包括将UIViewUIImageView嵌入到UIScrollView中。但是,我不知道是否有办法直接拖动对象(UILabel,UIButton ...)到UIScrollView。如果UIScrollView的大小设置为大于屏幕,则UIScrollView上的所有内容都可滚动。再次,这就是我所有的想法,我没有找到任何证实或否认这一点的帖子。我认为如果可能的话,这是设置可滚动屏幕的最简单方法。为什么我不能直接添加东西到UIScrollView?

如果这是不可能的,任何人都可以指向一个简单的方法来滚动一长串UIButton s(只有垂直)?我发现很多教程,但大多数用于滚动UIImageView,我不能采用包含UIButton s列表的UIView的方法。非常感谢您的帮助。

我处于iOS 5和故事板模式。

回答

0

Scrollview的是伟大的documentsimageswebviews等..

但对于铺设UI这是一个有点疼痛。

如果你只是纵向排列buttons那么你可能想看看使用UITableView来管理你的布局。

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

如果您想坚持使用scrollView,那么您可以创建一个新的UIView nib文件并使其成为您希望的全尺寸。将所有按钮拖入其中,然后使用代码将此UIView放入您的scrollView中。

这样你用IB拖动按钮来完成布局,但仍然使用代码将所有这些buttons等放入scrollview

+0

为什么我不希望使用的原因'UITableView'是,我不能直接添加动作(触摸)的细胞和我搜索比更复杂的是我应该做的,如果我只是要滚动的解决方案UIVIew中的按钮列表。 – zyl1024 2013-03-06 14:21:06

+0

然后使用我建议的第二个选择。 – Fogmeister 2013-03-06 14:21:52

+0

@ zyl1024将触摸添加到单元格实际上是微不足道的。只需阻止单元格选择并在表格中添加一个抽头识别器。 – Sulthan 2013-03-11 15:06:01

2

因为UIImageViewUILabelUIButtonUIView一个后代,您可以添加这些类全光照addSubview:方法的实例。

此外,您需要正确设置您的意见的框架。

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

1

的原因。案例UILabel,UIButton ...是subClassUIView。你可以添加UIViewScrollView,你也可以添加它们,因为它也来自UIView

使用View来包含button可让您轻松管理按钮。

您应该计算按钮的所有框架。如果它们具有相同的布局功能,则需要使用tableView

+0

为什么我不希望使用的原因'UITableView'是,我不能直接添加动作(触摸)的细胞,我搜索的解决方案比更复杂,我应该怎么做,如果我只是想滚动列表'UIVIew'中的按钮。 – zyl1024 2013-03-06 14:19:42

+0

我明白了。好吧,你可以找到一些关于实现tableView原理的文章。 它使用Flyweight模式,减少内存投射。 你可以做同样的事情在你的滚动视图,或者您添加了大量的按钮吧,内存警告容易显现。 – junkor 2013-03-07 01:54:47

0

在情节串连图板我建议不添加的UILabel等直接向滚动视图。它可以做到,但我发现在滚动视图的包含视图中直接只有一个视图(或非常直观)更容易。尤其是当单个视图大于屏幕时。

这就是为什么我建议箱一个普通的UIView对象。使用自由式大小在IB中绘制UIView。这应该是你唯一的直接子视图滚动视图。在该视图中,您可以轻松安排和重新排列所有UI项目。但要确保你不使用自动布局,您的视图不调整subvies和滚动视图不自动调整子视图。否则,您认为应该比屏幕更大的视图可能会静止进入屏幕(分别可用的窗口部分)尺寸。

相关问题