Wil*_*rge 36
我测试了这个理论,看来你可以用a scale transform来增加它的大小UISwitch
UISwitch *aSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(120, 120, 51, 31)];
aSwitch.transform = CGAffineTransformMakeScale(2.0, 2.0);
[self.view addSubview:aSwitch];
Run Code Online (Sandbox Code Playgroud)
Iva*_*van 16
斯威夫特 5:
import UIKit
extension UISwitch {
func set(width: CGFloat, height: CGFloat) {
let standardHeight: CGFloat = 31
let standardWidth: CGFloat = 51
let heightRatio = height / standardHeight
let widthRatio = width / standardWidth
transform = CGAffineTransform(scaleX: widthRatio, y: heightRatio)
}
}
Run Code Online (Sandbox Code Playgroud)
War*_*ton 12
不可能.A UISwitch具有锁定的内在高度51 x 31.
您可以在设计时在xib中强制对开关施加约束...

但是到了运行时它将恢复到其固有的大小.
您可以通过.onImage/ .offImageproperties再次从文档提供另一个图像.
此图像的大小必须小于或等于77点宽,27点高.如果指定较大的图像,则可能会剪裁边缘.
如果你想要另一种尺寸,你将不得不烘烤自己的自定义.
Bar*_*ath 11
斯威夫特4
@IBOutlet weak var switchDemo: UISwitch!
override func viewDidLoad() {
super.viewDidLoad()
switchDemo.transform = CGAffineTransform(scaleX: 0.75, y: 0.75)
}
Run Code Online (Sandbox Code Playgroud)
Ben*_*itz 10
这是我为此目的写的一个很好的UISwitch子类,它也是IBDesignable所以你可以从你的Storyboard/xib控制它
@IBDesignable class BigSwitch: UISwitch {
@IBInspectable var scale : CGFloat = 1{
didSet{
setup()
}
}
//from storyboard
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
//from code
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
private func setup(){
self.transform = CGAffineTransform(scaleX: scale, y: scale)
}
override func prepareForInterfaceBuilder() {
setup()
super.prepareForInterfaceBuilder()
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24941 次 |
| 最近记录: |