UserInteraction仅启用子视图

时间:2012-11-16 09:52:54

标签: iphone objective-c ios ipad subview

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

1 个答案:

答案 0 :(得分:12)

除非视图userInteractionEnabledYES且视图及其所有超级视图均为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