我有一个奇怪的问题,我的一个视图上的滚动视图在4英寸设备上完美运行,无论是在模拟器还是实际设备中。同样的滚动视图(以及其中的视图)不响应3.5英寸设备(相同的iOS版本,7.0.3)中的任何触摸事件(包括点击和滚动)。它渲染/显示完美。我甚至试图直接向视图本身添加一个tap处理程序以查看它是否会命中(categoriesScrollView是我的视图):
//viewDidLoad:
UITapGestureRecognizer *test = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(test)];
[categoriesScrollView addGestureRecognizer:test];
-(void)test{
NSLog(@"test");
}
它没有击中。在视图内部有按钮,可以在4英寸设备上完美敲击。在设备和模拟器上都会出现此问题。我检查的第一件事是任何设备/屏幕大小特定的代码,但没有任何。我检查的第二件事是布局约束:也许scrollview的实际边界在3.5英寸设备上越来越小(甚至可能为零),但我检查了帧并且一切正常(滚动视图有{{1}无论如何都设置为clipsToBounds
,所以如果是这样的话,那么内容无论如何都是不可见的。)
除了此滚动视图及其子视图之外的同一视图中的所有其他视图都正常接收触摸/运行。我想不出别的什么,可能导致什么呢?
答案 0 :(得分:2)
我已经解决了这个问题。我首先在滚动视图顶部的主视图内放置了另一个按钮(但滚动视图位于另一个容器,顶部栏中),按钮工作。然后我用滚动视图(在它上面)将按钮移动到同一个容器内,并且它不能用于响铃警报响。显然,我有一个进度指示器,该指标位于下方的主要位置,顶部条形的顶部约束。顶栏有clipsToBounds
设置为NO
并且指示器将顶栏的大小推到几乎为零,使滚动视图绘制但不响应触摸。这是一个简单的自动布局问题,包含滚动视图的顶部栏没有将滚动视图剪切掉它的边界,这使得bug更难找到。