当我们触摸子视图时,如何检测子视图中的事件触摸或如何触摸父视图?

use*_*951 5 iphone xcode subview uiview

我有2个UIView.

第一个是父视图

第二个是子视图,

我们如何检测子视图何时触及?

或者我想让用户触摸子视图时触摸父视图,任何代码都可以帮我做到吗?是否有可能做到这一点?

因为我有一个Something Function,当其中一个被触摸时会调用.

jus*_*koh 6

这对我有用:

(在xib或storyboard中链接子视图)

ViewController.h

@interface ViewController : UIViewController

@property (nonatomic, strong) IBOutlet UIView *subview;
@property (nonatomic, strong) UITapGestureRecognizer *tapRecognizer;

@end
Run Code Online (Sandbox Code Playgroud)

ViewController.m

@implementation ViewController

@synthesize subview;
@synthesize tapRecognizer;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self
                                                            action:@selector(handleTap:)];   

    [subview addGestureRecognizer:tapRecognizer];
}

- (IBAction)handleTap:(UITapGestureRecognizer *)recognizer {
    if (recognizer.state == UIGestureRecognizerStateEnded){
        //code here
        NSLog(@"subview touched");
    }
}

@end
Run Code Online (Sandbox Code Playgroud)


use*_*951 5

问题已经解决了.我觉得有人给了一个很好的答案,但我忘记了.

这就是我做的.XIB中有一个选项.有一个复选框(标题为"启用了用户交互"),指定子视图是否处理用户事件.

取消选中该复选框,并且所有触摸子视图都会转到父视图或其后的任何其他视图.