iOS中的“可点击”区域应该是按钮吗?

时间:2012-09-12 06:46:57

标签: ios

iOS中的“可点击”区域应该是按钮还是可以使用通用的UIView,UIImage等等?

假设我有一个带有图标,边框,阴影等的文本块。它看起来像一个bilboard。实现这一目标的最佳方式是什么?使用自定义UIButton并只添加子视图或只创建一个通用的UIView?

任何想法都赞赏!

3 个答案:

答案 0 :(得分:2)

您只需将UIGestureRecognizer添加到UIView并处理即可。您可以找到文档here和教程here

答案 1 :(得分:1)

对于包含多个子视图的视图,您可能希望使用UIView子类。虽然UIButton可以添加视图,但状态更改,启用/禁用可能会对整个视图(包括子视图)产生不稳定的影响。使用您自己的UIView子类将确保显示的内容不会受到任何状态更改的影响,从而为您提供完全控制。您可以覆盖

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

拦截自定义视图的触摸。如果你打算这样做,请记住userInteractionEnabled字段必须设置为true。

另外请注意:您提到阴影是您问题中的元素之一。如果您使用CALayer来执行此操作,绝对避免使用UIButton,因为处理不同状态的图层集非常复杂。

答案 2 :(得分:-1)

如果目标区域足够大,您可以在可点击视图的顶部放置一个透明的UIButton(将按钮类型切换为自定义,但不提供图像)以截取水龙头。