ios - Swift:按下后更改按钮颜色

标签 ios iphone swift button

我正在尝试将一个基本应用程序制作成我的 iPhone。我是 Xcode 的新手,我在谷歌上浏览过,但找不到我要找的东西。我正在尝试为我的飞机制作一份 list 。

我基本上有一个带有多个按钮的 View Controller 。我想要的是按钮在按下后从灰色变为蓝色,并保持蓝色,除非再次按下。我根本不了解 Xcode 和 Swift 语言,所以如果有人可以帮忙解释,就好像你在向 child 解释一样。

到目前为止,我已经设法让页面进行所有设置和滚动工作,但我现在只需要更改按钮。

先谢谢你, 泰。

最佳答案

这很简单。

您首先要在 ViewDidLoad() 方法中实际设置按钮的背景颜色。在此之前,您应该已经为按钮设置了一个 IBOutlet。在我的示例中,我只是将 socket 命名为通用“按钮”。

您的 IBOutlet 将是:

@IBOutlet weak var button:UIButton!

别忘了将 socket 也连接到按钮上!

接下来,在 ViewDidLoad 中将按钮的背景图片设置为灰色,如下所示:

override func viewDidLoad() {
    super.viewDidLoad()

    button.backgroundColor = UIColor.grayColor()
}

这应该为您的按钮提供通用的灰色背景。如果您想更多地控制实际颜色,可以将 button.backgroundColor = UIColor.grayColor() 替换为 button.backgroundColor = UIColor(red: CGFloat, green: CGFloat, blue: CGFloat , alpha: CGFloat),将“CGFloat”替换为您选择的值。

接下来,更改按钮颜色的实际代码:

创建一个 IBAction 并将其连接到按钮。我的名字是:

@IBAction func buttonTapped(sender: AnyObject) {}

你的条件是,如果按钮是灰色的,它应该在点击时变成蓝色,如果它是蓝色的,那么它应该在点击时变成灰色。

因此,在我们刚刚定义的 IBAction 中,您将添加一个 If 语句,如下所示:

@IBAction func buttonTapped(sender: AnyObject) {
    if button.backgroundColor == UIColor.grayColor() {
        button.backgroundColor = UIColor.blueColor()
    }
    else if button.backgroundColor == UIColor.blueColor() {
        button.backgroundColor = UIColor.grayColor()
    }
}

这个 if 语句的作用是,如果按钮的背景颜色为灰色,则将其设置为蓝色,或者如果背景颜色为蓝色,则将其设置为灰色。您可以将 UIColor.BlueColor()UIColor.GrayColor() 替换为更个性化的 UIColor(red: CGFloat, green: CGFloat, blue: CGFloat , alpha: CGFloat) 如果你愿意的话。

编辑:如果您只想更改按钮的文本颜色,只需在所需位置添加此语句或其变体:

button.setTitleColor(UIColor.grayColor(), forState: UIControlState.Selected)

关于ios - Swift:按下后更改按钮颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31372684/

相关文章:

swift - 在搜索 Controller 处于事件状态时选择表格行时应用程序崩溃

objective-c - iOS:NSString变量返回null

ios - 无法关闭 UIAlertController

iOS:本地化的 UILabel 文本未对齐

iphone - 将自签名证书添加到 iPhone 模拟器?

iphone - 如何为 NSLog( @"mytext") 打字和光标焦点设置预定义宏键,并选择在 "mytext "之间进行编辑

ios - Firebase Firestore 和 Protobuf 的词法或前身问题,这两个文件夹是问题所在

ios - 使用自定义单元格类时出现 Tableview 错误

iphone - 强制 MapKit 仅使用缓存的 map 图 block /以编程方式禁用网络

ios - FirebaseDatabase - removeAllObservers() - 它实际上删除了什么?