我有一个视图和视图.UserInteractionenabled = no并且在视图中添加了一个按钮。我只需要点击按钮。是否可以仅为按钮启用交互。
答案 0 :(得分:12)
除非视图userInteractionEnabled
为YES
且视图及其所有超级视图均为UIWindow
对象,否则视图无法接收触摸。
您可以创建UIView
的子类来包含该按钮,并通过覆盖hitTest:withEvent:
使其忽略按钮外的触摸。例如:
@interface MyView : UIView
@property (nonatomic, strong) IBOutlet UIButton *button;
@end
@implementation MyView
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
UIView *subview = [super hitTest:point withEvent:event];
return subview == self.button ? subview : nil;
}
@end