9

我有一个视图和 view.UserInteractionenabled = no 并且一个按钮被添加到视图中。我只需要点击按钮。是否可以仅启用按钮交互。

4

1 回答 1

13

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
于 2012-11-16T09:57:23.380 回答