【发布时间】:2017-03-27 21:21:50
【问题描述】:
我一直在尝试控制项目中所有按钮的外观。我创建了一个扩展并将其放在一个 ViewController 文件的顶部,以控制该视图中所有按钮的外观。它工作得很好。这里是:
import UIKit
// EXTENSION TO CONTROL BUTTON APPEARANCE
extension UIButton {
func styleButton() {
self.layer.cornerRadius = 8
self.layer.borderWidth = 2
self.layer.borderColor = UIColor.red.cgColor
}
}
class DefaultSettingsVC: UIViewController, UITextFieldDelegate {
...
// IN VIEWDIDLOAD :
myButton1.styleButton()
myButton2.styleButton() //etc.
唯一的事情是我需要把它放在每个 ViewController 文件的顶部。 (我希望我在这里使用了正确的术语。)因此,我想我会创建一个全新的文件,它是 UIButton 的子类。这是整个文件的内容:
import UIKit
class ButtonStyle: UIButton {
func styleButton() {
self.layer.cornerRadius = 8
self.layer.borderWidth = 2
self.layer.borderColor = UIColor.red.cgColor
}
}
但是现在呢?!当我尝试将它添加到我的 ViewController 文件中的 Class 行时,我收到“来自类的多重继承”错误。
class DefaultSettingsVC: UIViewController, UITextFieldDelegate, ButtonStyle {
我在这里完全走错了吗?我应该以完全不同的方式来做这件事吗?任何帮助都会很棒。我的 Swift 专业知识只有 2.5 分(满分 5 分),所以我还在学习中,如果可以的话,我将不胜感激。
【问题讨论】:
-
您的意思是要创建一个应该隐式应用
styleButton()的子类吗? -
我想是的,是的。但我不确定这是否是正确的做法。
-
在回答您的问题之前,您能否提及您想要达到的目的究竟是什么?所以我可以确保我会提出一个有用的方法。
-
我希望所有视图中的所有按钮都显示相同:圆角,周围有边框。
标签: swift swift3 uibutton formatting