如何在按下按钮时更改颜色视图? (迅速)

时间:2016-08-29 23:55:30

标签: ios view swift2 constraints uicolor

当按下蓝色框从大到小时,此代码有一个按钮。如何编写代码,以便按下按钮时,它会从大红框变为蓝色小框?感谢。

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.
    }


}

1 个答案:

答案 0 :(得分:0)

看看你是否可以自己解决这个问题。 viewDidLoad方法正在设置colorview的初始设置。

您的viewDidLoad代码会将backgroundColor的{​​{1}}属性设置为蓝色。它使用表达式colorview

红色的等效表达式为UIColor.blueColor()。看看你是否可以弄清楚如何将UIColor.redColor()的起始颜色更改为红色。

现在,在您的colorview方法中,您有一些奇怪的代码可以改变changethebleep的约束,使其更小。这大概是有效的,所以让我们一个人留下。

您只需从colorview复制将colorview.backgroundColor设置为蓝色并将其粘贴到viewDidLoad方法中的行。

顺便说一句,方法名和变量名应该是在Swift中使用的,这意味着第一个字母应该是小写的,并且每个后续单词的开头应该大写。因此,changethebleep应该是changethebleepchangeTheBleep应该是colorview。这不会改变代码的功能,但这些是Swift中的强命名约定(以及Objective-C中的。)