2

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

假设我有一个带有图标、边框、阴影等的文本块。它看起来像一个广告牌。实现它的最佳方法是什么?使用自定义 UIButton 并为其添加子视图或仅创建通用 UIView?

任何想法表示赞赏!

4

3 回答 3

2

您可以简单地将UIGestureRecognizers 添加到您的UIView并处理它们。您可以在此处找到文档,并此处找到教程。

于 2012-09-12T06:53:40.037 回答
1

可能对于包含多个子视图的视图,您想要使用UIView子类。虽然UIButton添加视图是可以的,但状态更改、启用/禁用可能会对整个视图(包括子视图)造成不稳定的影响。使用您自己的UIView子类将确保显示的内容不会因任何状态更改而被玩弄,从而让您完全控制。您可以覆盖

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

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

附加说明:您提到阴影是您问题中的元素之一。如果您习惯CALayer这样做,请绝对避免使用 UIButton,因为它处理不同状态的层集非常复杂。

于 2012-09-12T07:17:17.460 回答
-1

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

于 2012-09-12T07:14:15.300 回答