0

我正在尝试设计如何实现一个相对简单的应用程序。

我想创建一个覆盖整个屏幕的“正方形”网格。每个方块都应该有能力响应触摸事件,然后有一个开/关状态。例如,如果我触摸一个“关闭”方块,然后将手指拖过其他 10 个方块,我希望它们都打开。反之亦然。

我不确定仅仅创建一个包含 150 个按钮的网格的内存开销。据我所知,按钮也没有可设置的状态。我也在考虑继承 UIView 并实现 UIResponder 方法。感觉我应该创建一组按钮数组(或 UIView 的子类),但我不确定这是否可能。

我假设我可以通过从 UIResponder 方法获取 touchevent 的位置来判断我在哪个方格上。我是否需要通过子类化 UIView 创建我自己的 myButton 版本,并拥有一个开/关状态属性以及 UIResponder 方法,然后创建一个 myButtons 数组?

4

2 回答 2

1

UISwitch 是目前唯一这样做的东西,尽管有些人在使用 UISegmentedControl 方面也有很好的经验。

除此之外,您必须在代码中更改常规按钮或图像的样式/颜色,这是许多应用程序开发人员所做的,因此它的外观和反应完全按照他们想要的方式。

于 2009-04-15T19:30:10.057 回答
0

除非您需要更多 UIView 的事件处理内容,否则如果您使用单个视图并为其提供 -touchesBegan:withEvent、-touchesMoved 和 -touchesEnded 方法,您将获得最佳性能。然后使用自定义 drawRect 方法在开或关状态下绘制您的各个正方形。您也可以使用图层,但尝试布置 150 个视图是自找麻烦。

于 2009-04-15T20:30:06.437 回答