MKMapView.showsUserLocation 可能触发了 UIView.setNeedsLayout
2015-07-28 16:16 迷思的猫 阅读(322) 评论(0) 编辑 收藏 举报今天遇到一个BUG:
新建一个MKMapView,并设置showsUserLocation=true,此时由于还没有获取到用户的位置,所以MKMapView还没有发生任何变化。
此时在view上还有一个subview,该subview上也有一些constriants,显示在正常位置。通过用户点击按钮,通过UIView动画对该subview进行位移,该subview的响应也是正常的。
过去几秒后,机器获取到用户位置,MKMapView上的小蓝点显示,但上述的subview回到constraints约束的原位。
故猜测在设置了showsUserLocation=true之后,当MKMapView在自身绘制小蓝点时,会对superview进行setNeedsLayout的操作。