我正在尝试以编程方式添加按钮,如下所示。
lazy var myButton: UIButton = {
let button = UIButton(type: .System)
button.translatesAutoresizingMaskIntoConstraints = false
button.backgroundColor = UIColor.blueColor()
button.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height / 2)
button.addTarget(self, action: "buttonAction", forControlEvents: .TouchUpInside)
return button
}()
我的目的是创建一个按钮,其视图的宽度和高度是视图高度的一半。而且我也有这个按钮的LeftAnchor,RightAnchor,WidthAnchor,TopAnchor约束。
我的viewDidLoad()
view.addSubview(myButton)
当我尝试运行此代码时,我无法确切地看到我想在模拟器上拥有的内容。 我想看按钮width = view'按钮的宽度和高度=视图高度/ 2
相反,我看到模拟器左上方的小按钮。我该如何解决这个问题?
谢谢!
答案 0 :(得分:1)
更好的选择是使用AutoLayoutConstraints。
var myButtonHeight: NSLayoutConstraint
view.addSubview(myButton)
myButton.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
myButtonHeight = myButton.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.5)
myButtonHeight.isActive = true
如果更改按钮高度onTouchDown
,如果它是onTouchUpInside
导致的切换,则无法从您的评论中清楚,但无论如何
myButtonHeight.constant = (buttonShouldBeTall) ? 20 : 0
view.setNeedsLayout()
请记住,您还需要定位前导/尾随/中心X锚点和前导/尾随/中心锚点,具体取决于您需要它的位置