【发布时间】:2019-12-24 08:27:11
【问题描述】:
我正在开发自定义 UISwitch。我用这个改变了大小: self.transform = CGAffineTransform(scaleX: 1.25, y: 1.16)。 现在我有一个问题,拇指仍然是默认大小。
如何将它与 uiswitch 配合使用?
class CustomSwitch:UISwitch {
override init(frame: CGRect) {
super.init(frame: frame)
self.viewDidLoad()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
self.viewDidLoad()
}
func viewDidLoad() {
self.transform = CGAffineTransform(scaleX: 1.25, y: 1.16)
self.setupAppearance()
self.setColors()
self.addTarget(self, action: #selector(toggleState), for: .valueChanged)
}
func setupAppearance() {
self.layer.borderColor = UIColor.HavelockBlue.cgColor
self.layer.borderWidth = 1.0
self.layer.cornerRadius = self.bounds.height / 2
}
func setColors() {
self.backgroundColor = .white
self.subviews.first?.subviews.first?.backgroundColor = .clear
self.onTintColor = .white
self.thumbTintColor = .HavelockBlue
}
@objc func toggleState() {
if self.isOn {
print("Dark mode is on")
} else {
print("Dark mode is off")
}
}
}
【问题讨论】:
-
你在哪里打电话
self.transform = CGAffineTransform(scaleX: 1.25, y: 1.16)请添加代码(编辑你的问题) -
整个实现都在那里 -> imgur.com/A1V74LS
-
为什么会有这行:
self.transform = .identity?这将设置默认转换 -
我尝试过与 SOF 等不同的方法。无论如何,它不起作用。
标签: ios swift user-interface uiswitch