ios - 更改 UIView 的框架无法正常工作

标签 ios swift animation uiview frame

我有一个小问题,我不明白为什么会这样。

我有一个自定义的 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 的框架会自动反射(reflect)。

最佳答案

你应该改变中心而不是框架

   func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {

        if false == boolTapOnNavigationView {

            UIView.animate(withDuration: 0.5, animations: {

                   self.viewNavigation.centre.y = self.viewNavigation.centre.y - 100
                   //self.viewNavigation.isHidden = true
            })
            boolTapOnNavigationView = true
        }

        else {

            UIView.animate(withDuration: 0.5, animations: {
                //self.viewNavigation.isHidden = false
                self.viewNavigation.centre.y = self.viewNavigation.centre.y + 20
            })
            boolTapOnNavigationView = false
        }
    }

关于ios - 更改 UIView 的框架无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44016481/

相关文章:

ios - Swift - 根据多个条件搜索大数组

swift - 类型不符合协议(protocol) 'Decodable'/'Encodable'

ios - 通过应用内购买解锁 watch 支持

iphone - iOS : Property List Serialization vs. NSUserDefaults 与核心数据中的持久性

iphone - 将 scrollView 添加到 .xib 文件中的 View

ios - Parse.com 查询无法正常工作

ios - 第二个目标的代码签名临时版本出现问题

ios - 这个 block 有什么问题?

javascript - 如何禁用 Sencha Touch 2 页面转换动画?

html - 间距 CSS 动画