2012-09-12 40 views
2

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

假设我有一段带有图标,边框,阴影等的文字。它看起来像一个双板。什么是最好的实施方式?使用一个自定义的UIButton,只需添加子视图或创建一个通用的UIView?

任何想法赞赏!

回答

2

您可以简单地将UIGestureRecognizer添加到您的UIView并处理它们。您可以找到文档here和教程here

+0

太棒了。捕捉事件的原始流程!数字。 – sova

-1

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

1

可能对于包含多个子视图的视图,您希望使用UIView子类。虽然UIButton可以用于添加视图,状态更改,启用/禁用可能会对整个视图(包括子视图)产生不可思议的效果。使用你自己的UIView子类将确保显示的内容不会受到任何状态变化的影响,给你完全的控制权。您可以覆盖

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

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

附加说明:您提到阴影是您问题中的一个元素。如果你使用CALayer来做到这一点,绝对是避免使用UIButton,因为它是处理不同状态的一组图层,相当复杂。