我有一个奇怪的错误,其中UIView内的两个UIButton,在UIScrollView视图内部,在iOS 5上无法点击,但在iOS 6上工作得很好(屏幕截图显示下面的滚动条和地图)
唯一的另一个细节是滚动条视图“向上滑动”以在选择工作站时显示按钮。我已经尝试过选择iOS 5上的按钮了,它们确实受到了打击(视觉上),但事件没有被触发。
编辑:如果我点击并按住模拟器中的按钮,然后将光标向上移动并释放(例如,对于始终可见的UIView部分),事件将触发
滚动视图本身具有以下设置,后两者仅为了尝试使按钮在iOS 5上运行(尝试了各种组合)而添加:
self.scrollView.clipsToBounds = YES;
self.scrollView.scrollEnabled = YES;
self.scrollView.pagingEnabled = YES;
self.scrollView.delaysContentTouches = NO;
self.scrollView.canCancelContentTouches = NO;
按钮事件都正确连接,有适当的目标等:
[_updatePriceButton addTarget:self action:@selector(showPriceUpdateBoxWithPrice:) forControlEvents:UIControlEventTouchUpInside];
[_stationDetailsButton addTarget:self action:@selector(stationDetailsSelected:) forControlEvents:UIControlEventTouchUpInside];
处理程序(这里有一个作为示例):
- (void)stationDetailsSelected:(id)sender {
if ([self.delegate respondsToSelector:@selector(stationDetailsSelected:)]) {
[self.delegate stationDetailsSelected:_station];
}
}
任何帮助都会很棒!
答案 0 :(得分:6)
找到了罪魁祸首 - UIBut对UIVut的坐标错误配置UITapGestureRecognizer:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stationInfoViewTapped:)];
[infoController.view addGestureRecognizer:tap];
在“tap”初始化后添加以下内容可解决iOS 5中的问题:
[tap setCancelsTouchesInView:NO];