使用类在Swift3中自定义按钮及其突出显示的状态

布鲁斯基

我是Swift的新手,我认为这是iOS编程的基本问题。

我的情节提要板上有三个按钮,我想自定义一次,两次和三次按下时这些按钮的外观。

我也有三个主题(粉红色,蓝色和橙色)。我想做的是创建三个新类,分别是粉红色,蓝色和橙色。

我不想以编程方式创建它们,而只是以编程方式对其进行样式设置。

我没有明白是怎么做的我调用函数(:例“ButtonIsPressed”从我)pink.swift类到我@IBAction和@IBOutlet在同样的主视图控制器面向对象(即我不想为每个按钮创建一个函数)?

我真的找不到合适的最新Swift 3教程,对此主题的任何帮助或建议将不胜感激。

为什么不能这么简单?:

@IBAction func buttonPressed(_ sender: UIButton!) {
    self.backgroundColor = myPinkCGolor
}
dfd

我认为shallowThought的答案将适用于根据专门命名的IBOutlet的按钮状态更改backgroundColor。

我的情节提要板上有三个按钮,我想自定义一次,两次和三次按下时这些按钮的外观。

如果要保持“状态”,例如在“计数器”中单击或轻击按钮的次数,则可以使用按钮的“标记”属性。将其设置为零,并在IBAction函数中将其递增。(就像shallowThought所说的那样,对事件使用.touchUpInside和.touchDown。)

另外,您还有一个未成年人-但很重要!-您的代码Brewski中有错误:

@IBAction func buttonPressed(_ sender: UIButton!) {
    self.backgroundColor = myPinkCGolor
}

应该:

@IBAction func buttonPressed(_ sender: UIButton!) {
    sender.backgroundColor = myPinkCGolor
}

因此,将所有内容组合在一起-投票赞成shallowThought(也可以将他的AnyObject更改为UIButton,并在UIColors上使其成为Swift 3.x语法),并且最终会得出这样的结果。请注意,不需要IBOutlet,并且可以连接所有内容IB中无需子类化:

// .touchUpInside event

// can be adapted to show different color if you want, but is coded to  always show white color

@IBAction func buttonClicked(sender: UIButton) {
    sender.backgroundColor = UIColor.whiteColor()
}

// .touchDown event

// will show a different color based on tap counter

@IBAction func buttonReleased(sender: UIButton) {
    switch sender.tag {
    case 1:
        sender.backgroundColor = UIColor.blue
    case 2:
        sender.backgroundColor = UIColor.red
    case 3:
        sender.backgroundColor = UIColor.green
    default:
        sender.backgroundColor = UIColor.yellow
    }
    sender.tag += 1
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何设置SwiftUI按钮的自定义突出显示状态

Swift3中的自定义对象的缓存数组

使用按钮创建自定义类实例并将其显示在NSTableView中

Vim:在状态栏中使用自定义突出显示组

如何在Swift 3中自定义按钮的大小?

Swift 3 中的 UICollectionView 自定义按钮操作

iOS 7栏按钮项目:自定义背景图片和突出显示状态会使图片变暗

如何使用Swift在Xcode中创建自定义按钮?

自定义按钮类中的unbindService

Swift 3:UILabel未显示在自定义UITableViewCell中

ios swift3中的自定义文件夹加密

Sublime Text 3:自定义某些语法突出显示

Sublime Text 3中的自定义语法突出显示–无法转换

在传单中突出显示自定义图标

自定义Visual Studio Code中的语法突出显示

自定义SublimeLinter插件中的突出显示

rmarkdown中的自定义突出显示样式

在完整日历中突出显示自定义日期

在gedit中创建自定义语法突出显示

Swift中的自定义类集群

使用自定义语言在React应用中突出显示语法

在标签栏中设置自定义图标以突出显示/不突出显示

如何在Swift 3中按自定义状态值对自定义对象数组进行排序?

自定义vim突出显示

Notepad ++-自定义语法突出显示

从React Native中的自定义按钮更改状态

如何在我的 R 包中自定义打印/显示变量(使用自定义类)

具有自定义状态的自定义按钮

如何自定义工具条按钮鼠标悬停时突出显示颜色