在滚动顶部的UITableview时,隐藏的MKMapView以某种方式接收触摸

时间:2015-03-11 21:52:18

标签: ios objective-c uitableview mkmapview

我有UIViewController使用segmentedControlMKMapViewUITableView控制器之间切换。地图显示了一些位置,然后切换到列表将以列表形式显示这些位置。

当切换segmentedControl时,它会显示相应的视图并隐藏另一个视图。

我遇到的一个非常奇怪的问题是,当显示tableView并向下滚动时,它有时会停止滚动,我只能向上和向下滑动手指,而tableView不会移动。但是,然后我切换到地图,它已移动到另一个位置。所以当我滚动我隐藏的mapView时,我正在意识到这种接触。

这怎么可能?有没有办法防止这种情况?

2 个答案:

答案 0 :(得分:0)

您通过将hidden属性设置为1来隐藏视图,对吧? iOS也将隐藏着低于0.02的alpha视图视为隐藏。如果您正确地将其设置为隐藏,则不会绘制视图,也不会接收任何触摸事件 - 您确定其他内容尚未在此处发挥作用吗?

您是否覆盖了touchesBegan的{​​{1}}方法,以确定地图视图在隐藏时是否肯定会接收到触摸?

也许尝试将MKMapView设置为hidden 将要隐藏的视图的1属性设置为alpha。如果问题仍然存在,那么肯定会发生其他事情,因为隐藏的视图根本没有被绘制到屏幕上,因此系统不会转发任何触摸事件。

答案 1 :(得分:0)

我明白了。问题是自定义标注。当它在地图上打开时,我将地图隐藏起来并显示tableView,不知何故该标注仍在接收触摸,然后用它滚动地图。

在地图解决问题的同时隐藏标注。