问题是在Swift中以编程方式移动“InfoView”(UIView)。
Storyboard 中存在以下约束(参见图片):
现在,我想上下移动“MyView”中的“InfoView”。
我试过了:
@IBOutlet weak var infoTextLabel: UILabel!
@IBOutlet weak var infoTextLabelView: UIView!
// set infoTextLabel color
self.infoTextLabel.textColor = UIColor.blackColor()
// set infoTextLabel text
self.infoTextLabel.text = "hello"
// unhide infoTextLabel
self.infoTextLabel.hidden = false
// For the moving in Y-direction, I tried this - but does not work !!!!!!!
self.infoTextLabelView.frame.origin.y += 200
自动布局约束可以发挥作用吗?如何以编程方式克服这些困难。还是frame.origin.y方法错误?
感谢任何帮助!
最佳答案
使用约束时,您永远不想直接设置 View 的框架。而是重新配置约束,然后让自动布局引擎为您设置 View 的框架。在 View Controller 中创建IBOutlet,以存储对“中心Y路线约束”的引用。确保将其连接到 Storyboard 或xib中。
@IBOutlet var yConstraint: NSLayoutConstraint
然后,您可以设置约束的constant属性以使其偏离Y位置(正数将其向下移动,负数将其向上移动)。
yConstraint.constant = 200
这将使您的 View 向下移动200点。