【问题标题】:UIView transition problem from bottom to upUIView从下到上的过渡问题
【发布时间】:2019-03-11 19:32:04
【问题描述】:

在我的应用程序中,我想在override func viewDidLayoutSubviews() 中从下到上为视图设置动画。到目前为止,我已经通过这种方式从底部传输视图,但在不同的设备中它显示不同的 UI。 UIView 转换正在工作,但视图没有从底部完全转换,预计 iPhone XS。到目前为止,我已经完成了这两种方式:

第一步

    let currentFrame = self.animationVIew.frame
    self.animationVIew.frame = CGRect(x: 0, y: self.view.frame.height, width: currentFrame.size.width, height: currentFrame.size.height)
    UIView.animate(withDuration: 1.0) {
        self.animationVIew.frame = currentFrame
        self.loadViewIfNeeded()
    }

第二步

UIView.transition(with: animationVIew,
                      duration: 0.5,
                      options: [.transitionFlipFromBottom],
                      animations: {

    },
    completion: nil)

但是对于这两种方式我都面临同样的问题。不走运!!

【问题讨论】:

  • 在上下文中显示您的代码。很大程度上取决于代码运行的位置。例如,如果您在 viewDidLoad 中获取框架,则大多数时候您会得到错误的答案。
  • 我在override func viewDidLayoutSubviews()写这段代码

标签: swift uiview swift4.2 uiviewanimationtransition


【解决方案1】:

这是我的错误,我没有想到以适当的方式解决它。无论如何,如果有人遇到类似的问题,那么这个答案可能会对他们有所帮助。我刚刚更改了当前的autolayout 来解决这个问题。这个问题是由于animationViewtopView 之间的限制而发生的。这两个视图之间的距离约束是固定的,这就是为什么当动画发生时它正在调整animationView 的大小以调整约束。所以我的解决方案是固定动画视图高度约束并将优先级required 更改为@故事板中animationViewtopView之间距离约束的987654326@

【讨论】:

  • 很好,但由于该信息不在问题中,因此这不是一个公平的答案。
  • 好的,下次我会尝试添加有关该问题的更多详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多