如何重用UIView进行绘图?

时间:2011-09-27 10:56:42

标签: iphone objective-c uiview

我正在实现一个水平旋转木马 - 有点像UITableView,但是细胞水平排列而不是垂直排列。我想通过重复使用一个项目并仅在需要绘制或点击视图时设置其属性来支持大量项目。

我该怎么做?我可以从轮播的drawRect中调用视图的drawRect,还是需要做一些更复杂的事情?

4 个答案:

答案 0 :(得分:1)

DTGridView看起来不错,也考虑到iCarousel for iOS也会做封面风格

答案 1 :(得分:1)

另请参阅Apple的PhotoScroller示例代码。它的每一个效率都很高。

答案 2 :(得分:0)

我怀疑它会如此简单,因为drawRect中的实际绘图可能发生在与单元格设置不同的时间。理想情况下,drawRect中的所有内容都应该负责在该视图中实际绘制内容,而不是布局。

因此,UITableView有很多方法来设置节,行等。

你可能想看看Daniel Tull的DTGridView,这基本上就是你想要实现的目标。

答案 3 :(得分:0)

您不应致电drawRect:您需要致电-[UIView setNeedsDisplay]来调用-[UIView drawRect:]。这将设置图形上下文供您绘制。

至于布局,您的轮播应该实现-[UIView layoutSubviews],您可以通过调用-[UIView setNeedsLayout]来调用。