按下按钮时如何更改颜色视图? (迅速)
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
中有代码将colorview
的backgroundColor
属性设置为蓝色。它使用表达式UIColor.blueColor()
。
红色的等效表达式是UIColor.redColor()
。看看你是否能弄清楚如何将colorview
的起始颜色更改为红色。
现在,在您的 changethebleep
方法中,您有一些奇怪的代码来更改您的 colorview
的约束,使其更小。这大概是可行的,所以让我们不要管它。
您可以简单地从 viewDidLoad
复制将 colorview.backgroundColor 设置为蓝色的行并将其粘贴到您的 changethebleep
方法中。
顺便说一句,方法名和变量名在 Swift 中应该是驼峰式,这意味着第一个字母应该小写,并且每个后续单词的开头都应该大写。所以changethebleep
应该是changeTheBleep
和colorview
应该是colorView
。这不会改变你代码的功能,但这些是 Swift 中的强命名约定(在 Objective-C 中也是如此)。
【讨论】:
以上是关于按下按钮时如何更改颜色视图? (迅速)的主要内容,如果未能解决你的问题,请参考以下文章