现在项目中有一个需求:
首先我从第二个需求开始解决:
一、需求2解决方案:
1.首先,我们了解到ViewOne是继承自UIView,超类是UIResponeder,所以就会有这些特性。
根据其中touchesBegin方法:
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
我们可以获得点击ViewOne上面的touch对象的CGPoint,然后使用CGRectContainsPoint方法来判断是否点击了属于ViewTwo范围内的CGPoint,根据BOOL值来进行不同处理事件。如下:(加粗的方法,如果不了解自己百度一下)
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { UITouch * touch = [touches anyObject]; CGPoint current = [touch locationInView:self]; if (CGRectContainsPoint(self.ViewTwo.frame, current)) { NSLog(@"点击了ViewTwo卡片,马上进行消息传递处理,来解决需求1"); } else { NSLog(@"现在remove自身视图,现在已经解决需求2了"); NSLog(@"%@",NSStringFromCGPoint(current)); } }// 附录,还有一个很好玩的方法,感兴趣的Google了解一下
//- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
时间: 2024-11-05 11:26:57