gpt4 book ai didi

swift - UISlider 轨道不增加厚度

转载 作者:可可西里 更新时间:2023-11-01 00:19:53 25 4
gpt4 key购买 nike

我似乎无法增加轨道的厚度。一直在尝试其他建议并在文档中寻找此选项,但它似乎不起作用,有人知道为什么吗?:(

class factionButton: UISlider {
var factionSlider = UISlider()

func factionBalanceSlider(){
factionSlider.frame = CGRect(x: 15, y: 542, width: 386, height: 57)
factionSlider.minimumValueImage = #imageLiteral(resourceName: "Alliance Slider")
factionSlider.maximumValueImage = #imageLiteral(resourceName: "Horde Slider")
factionSlider.setThumbImage(#imageLiteral(resourceName: "Thumb Image"), for: .normal)
factionSlider.minimumTrackTintColor = UIColor(red:0.08, green:0.33, blue:0.69, alpha:0.8)
factionSlider.maximumTrackTintColor = UIColor(red:1.00, green:0.00, blue:0.00, alpha:0.59)

factionSlider.setValue(0.5, animated: true)
factionSlider.isContinuous = true
factionSlider.addTarget(self, action: #selector(recordFactionBalance(sender:)) , for: .valueChanged)
}

func getSlider() -> UISlider {
return factionSlider
}

override func trackRect(forBounds bounds: CGRect) -> CGRect {
let customBounds = CGRect(x: 16, y: 21, width: 343, height: 7)
super.trackRect(forBounds: customBounds)
return customBounds
}

最佳答案

正如许多其他 answers 中提到的,您可以通过创建自定义 slider 来更改高度,如下所示,

class CustomSlider: UISlider {

override func trackRect(forBounds bounds: CGRect) -> CGRect {
var rect = super.trackRect(forBounds: bounds)
rect.size.height = 7
return rect
}
}

但在您的特定情况下,您没有看到更改,因为您的实现不允许 factionSlider 使用 overridden trackRect。要使用它,您需要将其更改为 CustomSlider,如下所示,

class FactionButton: UISlider {
var factionSlider = CustomSlider()

func factionBalanceSlider(){
factionSlider.frame = CGRect(x: 15, y: 542, width: 386, height: 57)
factionSlider.minimumValueImage = #imageLiteral(resourceName: "Alliance Slider")
factionSlider.maximumValueImage = #imageLiteral(resourceName: "Horde Slider")
factionSlider.setThumbImage(#imageLiteral(resourceName: "Thumb Image"), for: .normal)
factionSlider.minimumTrackTintColor = UIColor(red:0.08, green:0.33, blue:0.69, alpha:0.8)
factionSlider.maximumTrackTintColor = UIColor(red:1.00, green:0.00, blue:0.00, alpha:0.59)

factionSlider.setValue(0.5, animated: true)
factionSlider.isContinuous = true
factionSlider.addTarget(self, action: #selector(recordFactionBalance(sender:)) , for: .valueChanged)
}

func getSlider() -> UISlider {
return factionSlider
}
}

注意Swift 中,class 名称应以我上面更新的 Capital 开头。其次,我认为FactionButton 不应该是UISlider子类

关于swift - UISlider 轨道不增加厚度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51700499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com