Tag: uiresponder

收集视图中的单元格中的UIButton不会触及事件内部

下面的代码expression了我的问题:(它是自包含的,你可以创build一个空模板的Xcode项目,replacemain.m文件的内容,删除AppDelegate.h / .m文件并构build它) // // main.m // CollectionViewProblem // #import <UIKit/UIKit.h> @interface Cell : UICollectionViewCell @property (nonatomic, strong) UIButton *button; @property (nonatomic, strong) UILabel *label; @end @implementation Cell – (id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { self.label = [[UILabel alloc] initWithFrame:self.bounds]; self.label.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; self.label.backgroundColor = [UIColor greenColor]; self.label.textAlignment = NSTextAlignmentCenter; self.button […]

在iOS上,如果superview的userInteractionEnabled为NO,那么所有子视图都被禁用?

我认为当一个视图被触摸或点击时,它的处理程序会先被调用,然后调用其superview的处理程序(向上传播)。 但是,如果superview的userInteractionEnabled设置为NO,那么所有的子视图和后代也都禁用了用户交互? 如果我们只想禁用主视图但不想禁用子视图呢?

如何在多点触控序列中有效处理UITouches

我正在使用多点触控书写,所以基本上我正在做的是,我正在写手与支持,因为通常,它的用户如何写,我跟着这个链接如何忽略多点触控顺序中的某些UITouch点 一切都工作正常单触,但他们是一些问题,当我用手触摸屏幕,即多个UItouches写下面是我的代码 触摸开始,我经历了所有的触摸,我发现触摸与最高的位置,下面是我的代码 以下是我的代码 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch* topmostTouch = self.trackingTouch; for (UITouch *touch in touches) { ctr = 0; touchStartPoint1 = [touch locationInView:self]; if(!topmostTouch || [topmostTouch locationInView:self].y > touchStartPoint1.y) { topmostTouch = touch; pts[0] = touchStartPoint1; } } self.trackingTouch = topmostTouch; } 在感动的时候,我只会采取self.trackingTouch,这是我触摸到的 我的触动移动下面的代码 -(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { if(self.trackingTouch== nil) { […]

UIGestureRecognizer阻止子视图处理触摸事件

我试图弄清楚这是如何做到正确的 。 我试图描绘的情况: 我添加一个UITableView作为UIView的子视图。 UIView响应pinchGestureRecognizer和pinchGestureRecognizer ,但是当这样做时,tableview停止对这两个手势作出反应(它仍然对滑动作出反应)。 我已经使它与下面的代码工作,但它显然不是一个很好的解决scheme,我敢肯定有一个更好的方法。 这是放在UIView (超级视图): -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { if([super hitTest:point withEvent:event] == self) { for (id gesture in self.gestureRecognizers) { [gesture setEnabled:YES]; } return self; } for (id gesture in self.gestureRecognizers) { [gesture setEnabled:NO]; } return [self.subviews lastObject]; }