例如,我使用此代码来更改UIView
called Propo
:
self.Propo.frame.origin.x -= self.view.frame.width
(Propo
故事板有限制)
但是当应用程序视图消失并重新出现时,UIView
将自身重置到原始位置。我该如何解决?我想要UIView
当我以编程方式更改它时保持其位置。
我试过了updateViewConstraints()
通过其他任何附加...
约束和手动框架操作直接冲突。你必须选择其中之一。您应该通过按住 Ctrl 键并将其作为 Storyboard 中的 @IBOutlet 拖动到视图控制器来“提升”您希望更改的约束。然后,您可以操纵它的常数:
class MyViewController: UIViewController {
@IBOutlet weak var myPropoLeftEdgeConstraint: NSLayoutConstraint!
@IBAction doChangePropo(sender: AnyObject) {
myPropoLeftEdgeConstraint.constant -= view.frame.width
view.layoutIfNeeded()
}
}
Objective C 中的很多地方已经介绍了这一点,因此如果您可以阅读这些示例,只需搜索一下以编程方式更改代码中的 NSLayoutConstraint 即可。
如何在代码中编辑约束 https://stackoverflow.com/questions/18897353/how-to-edit-constraint-in-code
(编辑以使其更适用:通常约束应该是动画的,以获得干净的用户体验。否则眼睛会感到困惑。)
您可以通过包裹轻松地对约束调整进行动画处理view.layoutIfneeded
in a UIView.animateWithDuration(duration) { ... }
block.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)