我正在开发一个功能,它将从屏幕底部向上设置动画,告诉用户其数据已保存。然而,它不出现在相同的地方,在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是'常规'的高度,所以我不认为这是它。 如何使此视图在所有设备上处于相同位置(相对于屏幕底部)?
为了在所有设备上将视图放在同一位置,必须设置约束。因此,系统能够正确显示您的视图。 因此,要实现视图的居中附加行为,您需要设置一个约束到安全区域底部,一个称为中心-水平、宽度和高度的约束,假设此视图是屏幕上的唯一组件。如果不是,则视图的顶部必须有一个顶部约束,其中的组件位于视图的顶部。 希望这有帮助,至少给你一个想法。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。