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

Posted

技术标签:

【中文标题】按下按钮时如何更改颜色视图? (迅速)【英文标题】:How to change colorview when button is pressed? (swift) 【发布时间】:2016-08-29 23:55:30 【问题描述】:

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

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】:

看看你能不能自己解决这个问题。 viewDidLoad 方法正在设置您的colorview 的初始设置。

您在viewDidLoad 中有代码将colorviewbackgroundColor 属性设置为蓝色。它使用表达式UIColor.blueColor()

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

现在,在您的 changethebleep 方法中,您有一些奇怪的代码来更改您的 colorview 的约束,使其更小。这大概是可行的,所以让我们不要管它。

您可以简单地从 viewDidLoad 复制将 colorview.backgroundColor 设置为蓝色的行并将其粘贴到您的 changethebleep 方法中。

顺便说一句,方法名和变量名在 Swift 中应该是驼峰式,这意味着第一个字母应该小写,并且每个后续单词的开头都应该大写。所以changethebleep 应该是changeTheBleepcolorview 应该是colorView。这不会改变你代码的功能,但这些是 Swift 中的强命名约定(在 Objective-C 中也是如此)。

【讨论】:

以上是关于按下按钮时如何更改颜色视图? (迅速)的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI,按下时如何更改视图(不使用按钮)颜色?

在 Swift 中按下 uibutton 时更改色调图像颜色

在按下时查看:按下时更改背景颜色?如何显示正在按下视图?

当按下按钮或视图迅速消失时

SwiftUI - 按下按钮时如何更改所有其他按钮的颜色?

使用 TouchableHighlight 在 React Native 中按下时如何更改按钮颜色?