ios - 父View范围内的button可点,范围外不可点,为什么?
ringa_lee
ringa_lee 2017-04-17 11:24:05
[iOS讨论组]

不废话,直接上代码

    self.back = [[UIView alloc] initWithFrame:CGRectMake(50.0f, 50.0f, 100.0f, 100.0F)];
    self.back.backgroundColor = [UIColor redColor];
    [self.window addSubview:self.back];
    
    UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(20, 20, 200, 40)];
    [btn addTarget:self action:@selector(zouni) forControlEvents:UIControlEventTouchUpInside];
    btn.backgroundColor = [UIColor blackColor];
    [self.back addSubview:btn];

效果如下

红色的方块是back,在这个范围内的btn可以点,点了 - (void)zouni 是有反应的,外边的没反应。
求解释,求原理,还有什么办法可以让整个btn可以点?

ringa_lee
ringa_lee

ringa_lee

全部回复(3)
迷茫

红框外的事件传递给了白view

解决办法:扩大父view范围

伊谢尔伦

范围外不接受事件

巴扎黑

创建一个UIView的子类,并且重写这个子类的

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

方法,在这个方法里,判断point参数是否在你的btn的范围内,如果是,则返回btn

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号