【发布时间】:2017-10-16 10:07:41
【问题描述】:
我有一个小问题,我不知道为什么会这样。
我有一个自定义的 NavigationView。我的要求是在点击谷歌地图时更改此 NavigationView 的框架。我的意思是我必须用动画显示和隐藏(切换)帧。
下面是我的代码:-
func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
if false == boolTapOnNavigationView {
UIView.animate(withDuration: 0.5, animations: {
self.viewNavigation.frame = CGRect(x: 0, y: -100, width: self.view.frame.width, height: 60)
//self.viewNavigation.isHidden = true
})
boolTapOnNavigationView = true
}
else {
UIView.animate(withDuration: 0.5, animations: {
//self.viewNavigation.isHidden = false
self.viewNavigation.frame = CGRect(x: 0, y: 20, width: self.view.frame.width, height: 60)
})
boolTapOnNavigationView = false
}
}
在我的代码中,您可以看到我有一个名为“boolTapOnNavigationView”的标志。
如果我点击谷歌地图,该代码工作正常,但是当我点击同一个 ViewController 中的任何其他按钮时,该 NavigationView 的框架会自动反映。
【问题讨论】:
-
不清楚你的问题到底是什么!您是否已将委托添加到视图控制器
mapView.delegate = self?或者您能说一下您在哪里面临复杂性? -
是 mapView.delegate = 自添加。我的问题是我在谷歌地图顶部有一个自定义导航视图。我想在点击谷歌地图时更改框架。谢谢
-
只是尝试更改地图视图框架并检查是否存在问题?
-
是的,我更改了 mapView 框架,mapview 也有同样的问题。
-
我认为你遗漏了一些东西,但不是你给定的 sn-p。看看这里:github.com/GolapHasan/Google-Map-Demo
标签: ios swift animation uiview frame