iOS中的“可点击”区域应该是按钮还是可以使用通用的UIView,UIImage等等?
假设我有一个带有图标,边框,阴影等的文本块。它看起来像一个bilboard。实现这一目标的最佳方式是什么?使用自定义UIButton并只添加子视图或只创建一个通用的UIView?
任何想法都赞赏!
答案 0 :(得分:2)
答案 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(将按钮类型切换为自定义,但不提供图像)以截取水龙头。