2014-03-05 73 views
0

是否有一些“最佳实践”的方式来添加子视图UIScrollView在哪里添加子视图在UIScrollView

例如:

我有加载从服务器相应的描述图像的UIViewController。 那些图片+说明应该在水平scrollView中添加。

当数据被加载,我要创造我UIView的方法来处理这些东西, 或者是更方便的做到这一点,我UIViewController

+1

不使用'UITableView'的任何特定原因? – Desdenova

+0

它应该是水平滑动的东西,而不是垂直滚动通过一个表查看 –

+1

然后考虑'UICollectionView'。 – Desdenova

回答

0

您的视图控制器将是一个最合适的地方来处理这个问题,因为控制器应该将您的视图(滚动视图)连接到数据(图像)。

如果滚动视图的布局很简单,可以完全用控制器完成。但是,如果布局复杂,您可能需要考虑继承UIScrollView并处理其中的一些布局(类似于UITableView的工作方式)。

有关标准应用程序体系结构的更多信息,请在Apple的开发人员网站上阅读Concepts in Objective-C Programming

+0

我在使用MVC模式中的'UIViewController'作为视图和数据之间的连接思想相同!感谢你的回答!:) –

0

通过我看它的方式,关注点分离会打破这样的:

  • UIViewController负责获取的图像,并将其移交给UIView
  • UIView负责显示他们。

所以-addSubview:是一个视图实现的细节,应该在视图中,并是不透明的控制器。

有很多意见,这两个UIViewControllerUIView是迷茫,以这样的方式交织在一起,使他们的概念“观点”(在MVC意义上的)的两个组成部分,但我认为它仍然是清洁的这种方式。

正如你所看到的,意见不同。 :)就我个人而言,我绝望的MVC,并认为Model-View-ViewModel是一个更清晰,更干净,更明智的方式来处理这一切。

0

UICollectionView是相同的UITableView的,除了它是为了显示图像和其描述。

这是你可以做的。

  1. 创建一个UICollectionView,它是UIScrollView的子类。所以不需要UIScrollview。
  2. 既然你需要每个项目的图像和描述,我会建议从UICollectionView中删除UICollectionViewItem。
  3. 创建一个单独的自定义UICollectinViewItem类,在.xib文件(UIImageVIew和UILabel)中定义UICollectionItem。
  4. 当您定义数据源方法“ - collectionView:cellForItemAtIndexPath:”时,请在此处定义UICollectionVIewItem类。我们完全定义了自定义的UITableVIewCell。
相关问题