当按下蓝色框从大到小时,此代码有一个按钮。如何编写代码,以便按下按钮时,它会从大红框变为蓝色小框?感谢。
import UIKit
class ViewController: UIViewController {
let colorview = UIView()
var initialc = [NSLayoutConstraint]()
override func viewDidLoad() {
super.viewDidLoad()
colorview.translatesAutoresizingMaskIntoConstraints = false
colorview.backgroundColor = UIColor.blueColor()
self.view.addSubview((colorview))
let leadingc = colorview.leadingAnchor.constraintEqualToAnchor(self.view.leadingAnchor)
let trailingC = colorview.trailingAnchor.constraintEqualToAnchor(self.view.trailingAnchor)
let topc = colorview.topAnchor.constraintEqualToAnchor(self.view.topAnchor)
let bottomc = colorview.bottomAnchor.constraintEqualToAnchor(self.view.bottomAnchor, constant: -50)
initialc.appendContentsOf([leadingc,trailingC,topc,bottomc])
NSLayoutConstraint.activateConstraints(initialc)
}
@IBAction func changethebleep(sender: AnyObject) {
NSLayoutConstraint.deactivateConstraints(initialc)
let widthc = colorview.widthAnchor.constraintEqualToConstant(100)
let heightc = colorview.heightAnchor.constraintEqualToConstant(100)
let centerxc = colorview.centerXAnchor.constraintEqualToAnchor(self.view.centerXAnchor)
let centeryc = colorview.centerYAnchor.constraintEqualToAnchor(self.view.centerYAnchor)
NSLayoutConstraint.activateConstraints([widthc,heightc,centerxc,centeryc])
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
答案 0 :(得分:0)
看看你是否可以自己解决这个问题。 viewDidLoad方法正在设置colorview
的初始设置。
您的viewDidLoad
代码会将backgroundColor
的{{1}}属性设置为蓝色。它使用表达式colorview
。
红色的等效表达式为UIColor.blueColor()
。看看你是否可以弄清楚如何将UIColor.redColor()
的起始颜色更改为红色。
现在,在您的colorview
方法中,您有一些奇怪的代码可以改变changethebleep
的约束,使其更小。这大概是有效的,所以让我们一个人留下。
您只需从colorview
复制将colorview.backgroundColor设置为蓝色并将其粘贴到viewDidLoad
方法中的行。
changethebleep
应该是changethebleep
而changeTheBleep
应该是colorview
。这不会改变代码的功能,但这些是Swift中的强命名约定(以及Objective-C中的。)