Man*_*ano 7 iphone uiview touchesbegan ios
在我的添加联系人页面中,我有一个视图和一个滚动视图,并再次有一个视图.在最后一个视图中我有文本框等,我已经给出了'touchesBegan'方法,但它仅在底部的视图中调用.如何将该方法指向另一个视图,即顶部的视图?
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[self.AddView endEditing:YES];
}
Run Code Online (Sandbox Code Playgroud)
Rus*_*shi 27
一种方法是你可以这样做:
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch= [touches anyObject];
if ([touch view] == image1)
{
//Action
}
}
Run Code Online (Sandbox Code Playgroud)
请注意:在使用UIScrollView时,您可能无法获得UIScrollView的触摸方法.在这种情况下,您可能必须使用UIGesture.
这是Swift的答案:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
let touch = touches.first as! UITouch
if(touch.view == myView){
// Code
}
}
Run Code Online (Sandbox Code Playgroud)
首先检查UserInteractionEnabled整个控件的属性并设置为YES
在查看底部视图框架后,该视图上没有结束
并且您可以通过波纹状况检查出来并使用特定控制触摸事件做某事.
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
[touch locationInView:viewBoard];
if([touch.view isKindOfClass:[UIImageView class]])
{
UIImageView *tempImage=(UIImageView *) touch.view;
if (tempImage.tag == yourImageTag)
{
/// write your code here
}
}
}
Run Code Online (Sandbox Code Playgroud)