And*_*rew 7 iphone subclass uigesturerecognizer uitapgesturerecognizer
我有一个主viewController,它被调用WelcomeViewController.我有一个UIView子类,它有一些与视图相关的东西.我想在UITapGestureRecognizer该子类中添加一个.我只希望手势识别器确认该子视图内的水龙头.我怎么做.我UITapGestureRecognizer应该把它放在子类中还是应该把它放在Welcome vc中.提前致谢.
此外,我已经玩了一堆,似乎无法搞清楚.
Jos*_*Lin 18
这取决于您是要在自定义视图对象中还是在视图控制器中处理点击.
如果在视图中,将其添加到它init或其他适当的位置:
UITapGestureRecognizer* tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[self addGestureRecognizer:tapRecognizer];
[tapRecognizer release];
Run Code Online (Sandbox Code Playgroud)
如果在视图控制器中,将其添加到viewDidLoad(或其他适当的位置):
UITapGestureRecognizer* tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[yourCustomView addGestureRecognizer:tapRecognizer];
[tapRecognizer release];
Run Code Online (Sandbox Code Playgroud)
处理程序是相同的:
- (void)handleTap:(UITapGestureRecognizer*)recognizer
{
// Do Your thing.
if (recognizer.state == UIGestureRecognizerStateEnded)
{
}
}
Run Code Online (Sandbox Code Playgroud)
看看SimpleGestureRecognizers示例,你应该得到一个非常好的主意.
----更新于10/1/2012 ----
对于那些喜欢使用storyboard/nib的人来说,这非常简单!
打开你的故事板/笔尖.
将所需的识别器从对象库拖放到所需的UI元素上.
右键单击识别器对象,然后将其连接selector到文件所有者(通常是UIViewController)中的IBAction.如果需要,也可以连接委托.
你完成了!
您可以选择 的接收者UITapGestureRecognizer,它不必与实例化识别器的类相同(即self)。如果您在 中创建它WelcomeViewConroller,则可以选择任何子视图来接收事件:
[tapRecognizer addTarget:aSubview action:@selector(myMethod:)];
Run Code Online (Sandbox Code Playgroud)