博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS子视图超出父视图的部分视图响应事件的问题
阅读量:6217 次
发布时间:2019-06-21

本文共 1248 字,大约阅读时间需要 4 分钟。

现在有一个问题,点击黄色子视图超出红色视图的区域的时候,事件没有响应。原因是事件传递默认是在红色父视图的坐标区域里面的,所以超出的部分不起作用。

解决问题的思路:重写红色父视图的- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event方法,当超出区域的适合返回黄色子视图。

@interface UIView2:UIView@end@implementation UIView2@end@interface UIView1:UIView@end@implementation UIView1- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{        if (![self pointInside:point withEvent:event]) {        for (UIView *view in self.subviews) {            CGPoint view2Point = [self convertPoint:point toView:view];            if ([view isKindOfClass:[UIView2 class]]&&CGRectContainsPoint(view.frame, view2Point)) {                return view;            }        }            }        return [super hitTest:point withEvent:event];}@end//    UIView1 *view1 = [UIView1 new];    view1.frame = CGRectMake(50, 100, 100, 100);    view1.backgroundColor = [UIColor redColor];    [self.view addSubview:view1];        UIView2 *view2 = [UIView2 new];    view2.frame = CGRectMake(10, 50, 100, 100);    view2.backgroundColor = [UIColor yellowColor];    [view1 addSubview:view2];  UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tap)];    [view2 addGestureRecognizer:tap];- (void)tap{    NSLog(@"点击了黄色的view");}复制代码

转载地址:http://ibpja.baihongyu.com/

你可能感兴趣的文章
Vue 组件库 HeyUI@1.16.0 更新日志
查看>>
windows下elasticsearch配置及spring boot 简单demod的 整合
查看>>
消息队列三
查看>>
seastar中apply模板的实现
查看>>
Clear Linux镜像在云市场发布
查看>>
LNMP+sphinx实现大数据秒查
查看>>
最佳的解决方案关于:cactiez监控linux主机时iptables阻碍了udp161端口造成无法监控解...
查看>>
linux命令:resize2fs、lvm逻辑卷lv扩展及缩减
查看>>
【数据恢复】详解ORA-8103错误
查看>>
CentOS 7 修改网卡名称
查看>>
Microsoft Office SharePoint Server 2007 Trial Version已经可以下载了
查看>>
网站前端和后台性能优化6
查看>>
MDSF:代码生成 VS 模型解释
查看>>
Lync 小技巧-38-Lync Server 2013与Exchange Server高可用环境-集成
查看>>
几个匿名内部类问题的思考
查看>>
爱因斯坦谜题:谁养鱼(C#版)续
查看>>
ORACLE 12C连接时报ORA28040和ORA01017的错误
查看>>
1分钟实现MySQL批量导出以某数字或字母开头的表
查看>>
网管成长路线建议
查看>>
XSL学习笔记3 XSLT的模板规则<xsl:value-of>和<xsl:for-each>
查看>>