您将如何在 swiftUI/Swift 的滑块轨道中绘制节点?
Posted
技术标签:
【中文标题】您将如何在 swiftUI/Swift 的滑块轨道中绘制节点?【英文标题】:How would you draw a node in the slider track in swiftUI/Swift? 【发布时间】:2020-10-14 06:39:25 【问题描述】:如何在 swiftUI/Swift 的滑块轨道中绘制节点/气泡? 10 个值需要 10 个节点。 我得到了 png 的帮助(如果有帮助的话),它移动得非常好(从一个节点跳到另一个节点),但是,我还需要轨道背景颜色以及这些节点。不知道该怎么做。
Hyperlinking我一直在寻找的演示
这就是我所做的。
let trackingImage = UIImage(named:"bubbles")!
func makeUIView(context: Context) -> UISlider
let slider = UISlider(frame: .zero)
slider.thumbTintColor = thumbColor
slider.minimumTrackTintColor = minTrackColor
slider.maximumTrackTintColor = maxTrackColor
slider.value = Float(value)
slider.minimumValue = 0
slider.maximumValue = 9
slider.setMinimumTrackImage(trackingImage, for:.normal)
slider.setMaximumTrackImage(trackingImage, for:.normal)
slider.minimumTrackTintColor = .systemBlue
slider.addTarget(
context.coordinator,
action: #selector(Coordinator.valueChanged(_:)),
for: .valueChanged
)
return slider
【问题讨论】:
【参考方案1】:这听起来很幼稚,但为了回答我自己的问题,我只是通过将图像设置为 setMinimumTrackImage 和 来添加该类型的图像(条形和圆形/节点一起) >setMaximumTrackImage 图像。
let trackingImage = UIImage(named:"slider_unselected")!
let trackedImage = UIImage(named:"selectedTracl82")!
@Binding var value: Int
func makeUIView(context: Context) -> UISlider
let slider = UISlider(frame: .zero)
slider.thumbTintColor = thumbColor
slider.minimumTrackTintColor = minTrackColor
slider.value = Float(value)
slider.minimumValue = 0
slider.maximumValue = 9
slider.setMinimumTrackImage(trackedImage, for:.normal)
slider.setMaximumTrackImage(trackingImage, for:.normal)
张贴以防有人遇到同样的问题。
【讨论】:
以上是关于您将如何在 swiftUI/Swift 的滑块轨道中绘制节点?的主要内容,如果未能解决你的问题,请参考以下文章