9

ビューとview.UserInteractionenabled = noがあり、ビューにボタンが追加されます。ボタンをクリックするだけです。ボタンのみのインタラクションを有効にすることは可能ですか。

4

1 に答える 1

13

ビューとそのオブジェクトまでのすべてのスーパービューに対するものでない限り、ビューuserInteractionEnabledはタッチを受け取ることができません。YESUIWindow

ボタンを含む のサブクラスを作成し、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 に答える