构建“按钮”的可视网格

时间:2009-04-15 19:22:01

标签: iphone objective-c uiview button

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

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

我不确定只创建150个按钮的网格的内存开销。从我所看到的,按钮也没有可设置的状态。我还在考虑子类化UIView并实现UIResponder方法。感觉我应该创建一个按钮数组(或UIViews的子类)的数组,但我不确定这是否可能。

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

2 个答案:

答案 0 :(得分:1)

UISwitch是目前唯一能做到这一点的,尽管有些人在使用UISegmentedControl时也有很好的经验。

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

答案 1 :(得分:0)

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