以编程方式创建屏幕下方的UIButton不起作用?

时间:2010-11-10 02:55:05

标签: iphone objective-c uikit

我正在创建一个盒子矩阵,里面有一些图像。为了管理水龙头并获取哪个盒子,我将每个盒子里面放置一个不可见的UIButton,以及盒子的大小。

我添加了事件监听器(对不起,我是一个Javascript程序员:))像这样:

[button addTarget:self action:@selector(boxTapped:) forControlEvents:UIControlEventTouchUpInside];

我启动了模拟器,它运行得很好。我可以在日志中看到按钮的标签。然而,然后我向下滚动,令我惊讶的是,屏幕折叠下面的按钮没有任何工作。没有发送任何事件。我对此完全感到困惑,并且不知道会导致什么。有没有人有任何想法?

编辑: 基本上,作为总结,屏幕初始底部以下的任何内容都不会触发操作。当最初切掉一半​​盒子时,只有在首次显示视图时露出的(上半部分)工作。下半部分不会触发动作。

2 个答案:

答案 0 :(得分:2)

其中一个原因是你的按钮实际上放在盒子的边界之外。这些按钮仍然可见,因为您没有将框设置为剪切区域外的任何内容。因此这些按钮无法接收任何输入事件。

你可以尝试为你的盒子设置clipsToBounds = YES,看看按钮是否仍然可见?

答案 1 :(得分:1)

确保处理boxTapped的视图的边界足够大,以包含最初在屏幕外的按钮。 UIView只能响应其自身坐标系内的触摸,但它可以包含无法触及的坐标系外的子视图。