2011-09-27 38 views
1

我正在实现项目的水平旋转木马 - 有点像UITableView,但单元格水平排列而不是垂直排列。我希望它支持大量的项目,方法是重复使用一个项目并仅在需要绘制或点击视图时才设置其属性。如何重用UIView进行绘图?

我该怎么做?我可以从传送带的drawRect中调用视图的drawRect,还是需要做更复杂的事情?

回答

0

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

因此UITableView的有一大堆的方法来设置部分,行等

你可能想看看丹尼尔·塔尔的DTGridView这基本上是做正是你想要达到的目标。

+0

稍作修改:'drawRect:'将内容绘制到背景'CALayer'中,而不是视图本身。 –

1

DTGridView看起来不错,也考虑iCarousel为iOS这也将做的CoverFlow风格

0

你不应该叫drawRect:你要打电话-[UIView setNeedsDisplay]调用-[UIView drawRect:]。这将设置您要绘制的图形上下文。

至于布局,你的传送带应该实现-[UIView layoutSubviews],你调用-[UIView setNeedsLayout]调用。

1

另请参阅PhotoScroller来自Apple的示例代码。它的每一个高效。