开发者社区> 问答> 正文

如何使动画视图与所有设备上的屏幕底部保持一致距离?

我正在开发一个功能,它将从屏幕底部向上设置动画,告诉用户其数据已保存。然而,它不出现在相同的地方,在iPhone 11专业Max,因为它在iPhone X上。UIView iPhone 11 专业最大 (这是我想要它看起来像):

但在 iPhone X 上:

我也许应该注意到,我在情节提要上创建了视图,并连接到了它。在情节提要上,它的位置,你看到它在顶部截图。我没有对此有任何限制。其余部分在代码中完成。@IBOutlet 要进行动画处理的代码非常简单:

 override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
savedView.center.y += view.bounds.height // start with it off the screen 
savedView.center.x = (view.bounds.width / 2)}override func viewDidAppear(_ animated: Bool) {    super.viewWillAppear(true)
// animate it onto the screen
UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.6, initialSpringVelocity: 0.0, options: [], animations: {
    self.savedView.center.y -= self.view.bounds.height <-- the problem must be here
}, completion: nil)

} 我想这可能是由于不同的设备大小类,但所有的iPhone是'常规'的高度,所以我不认为这是它。 如何使此视图在所有设备上处于相同位置(相对于屏幕底部)?

展开
收起
上好佳Hao 2019-11-30 23:21:25 2004 0
1 条回答
写回答
取消 提交回答
  • 为了在所有设备上将视图放在同一位置,必须设置约束。因此,系统能够正确显示您的视图。 因此,要实现视图的居中附加行为,您需要设置一个约束到安全区域底部,一个称为中心-水平、宽度和高度的约束,假设此视图是屏幕上的唯一组件。如果不是,则视图的顶部必须有一个顶部约束,其中的组件位于视图的顶部。 希望这有帮助,至少给你一个想法。

    2019-11-30 23:22:28
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
3D动画的菜谱式灯光与云渲染 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载