2

我即将将我的 5-in-a-row 客户端移植到 iOS 平台。最初我是用Java设计的。有 15*15 个字段需要显示。在 PC 上,我用单独的对象表示字段,这些对象只对自己负责(事件处理等)。我不确定在移动平台上做同样的事情是否是个好主意(我的意思是使用 225 个手势识别器听起来不太有希望)。还有另一种方法将所有这些字段合并到一个大视图中,该视图通过对屏幕坐标进行一些数学运算来负责绘图和事件处理。我个人更喜欢第一种方法,因为它更基于 OO。你认为,如果性能是主要的,我应该在 iOS 上更喜欢哪一个?提前致谢!

4

1 回答 1

4

如果性能是主要的,你可以有一个自定义的绘制视图,使用UIGestureRecognizer来获取 CGPoint 并且只重绘使用UIView影响的区域(正方形) :

- (void)drawRect:(CGRect)rect

做这个数学很简单。

但是,根据控件和每个单元的复杂性,该代码可能难以维护。创建一个带有子视图的分层控件,其中每个子视图负责它如何绘制、处理手势等……更易于维护,代码最终会更干净。会不会有更多的开销?是的。这会是个问题吗?可能不会。因此,您需要尝试并测量。使用子视图创建聚合视图是很常见的,每个子视图都知道如何绘制和处理手势——这就是可可触摸的全部内容。

于 2012-07-08T14:20:07.103 回答