【发布时间】:2015-05-21 20:28:46
【问题描述】:
我有一个视图,它会像抽屉一样从屏幕底部向上移动。但它什么也没做。它只是坐在那里=) 谁能告诉我,为什么会这样?
这是我的代码:
import UIKit
class InfoPopUpVC: UIViewController {
var superView: UIView!
var labelText: String!
let textLabel = UILabel()
let height = CGFloat(80)
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
UIView.animateWithDuration(0.4, animations: { () -> Void in
self.view.center.y = 50
})
}
override func viewDidLoad() {
super.viewDidLoad()
setupTextLabel()
view.frame = CGRectMake(0, superView.frame.maxY-height, superView.frame.width, height)
AnimationHelper.blurBackgroundForView(view)
view.backgroundColor = .greenColor()
}
func setupTextLabel(){
textLabel.text = labelText
textLabel.frame = CGRectMake(0, 0, view.frame.width, view.frame.height)
textLabel.numberOfLines = 3
textLabel.textAlignment = .Center
textLabel.frame.inset(dx: 10, dy: 8)
textLabel.sizeToFit()
textLabel.font = UIFont(name: "HelveticaNeue-Light", size: 17)
textLabel.textColor = .whiteColor()
view.addSubview(textLabel)
}
}
【问题讨论】:
-
你在使用自动布局吗?如果是这样,更改中心和框架不会移动视图。
-
每当我希望从底部弹出一个弹出窗口以显示一些信息时,都会以编程方式调用 InfoPopUpVC。 PopUp 的 viewController 添加为子视图使用自动布局,但因为它是通过编程方式调用的,所以我无法设置任何约束
-
不能以编程方式设置约束是不正确的。有一套完整的 API 可用于以编程方式添加约束,并且有大量文献记录了如何做到这一点。阅读 Xcode 中的 NSLayoutConstraint 类参考以获得介绍(特别是关于创建约束的部分。)