我正在创建一个盒子矩阵,里面有一些图像。为了管理水龙头并获取哪个盒子,我将每个盒子里面放置一个不可见的UIButton,以及盒子的大小。
我添加了事件监听器(对不起,我是一个Javascript程序员:))像这样:
[button addTarget:self action:@selector(boxTapped:) forControlEvents:UIControlEventTouchUpInside];
我启动了模拟器,它运行得很好。我可以在日志中看到按钮的标签。然而,然后我向下滚动,令我惊讶的是,屏幕折叠下面的按钮没有任何工作。没有发送任何事件。我对此完全感到困惑,并且不知道会导致什么。有没有人有任何想法?
编辑: 基本上,作为总结,屏幕初始底部以下的任何内容都不会触发操作。当最初切掉一半盒子时,只有在首次显示视图时露出的(上半部分)工作。下半部分不会触发动作。
答案 0 :(得分:2)
其中一个原因是你的按钮实际上放在盒子的边界之外。这些按钮仍然可见,因为您没有将框设置为剪切区域外的任何内容。因此这些按钮无法接收任何输入事件。
你可以尝试为你的盒子设置clipsToBounds = YES,看看按钮是否仍然可见?
答案 1 :(得分:1)
确保处理boxTapped的视图的边界足够大,以包含最初在屏幕外的按钮。 UIView只能响应其自身坐标系内的触摸,但它可以包含无法触及的坐标系外的子视图。