我的代码使用编程的滑块,我想在Xcode的debug部分中找到该值。除“ ben:0”外,我在调试区域中什么都没有看到。如果我将滑块移到右侧部分的末尾,它将显示“ ben” 1”,但这是我看到的唯一更改的值,这些都是代码,因此您只需将其复制到Xcode项目中,就不需要故事板。
import UIKit
class ViewController: UIViewController {
var move = UISlider()
override func viewDidLoad() {
super.viewDidLoad()
[move].forEach({
$0.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview($0)
})
move.frame = CGRect(x: view.center.x-115, y: view.center.y+200, width: 200, height: 30)
move.addTarget(self, action: #selector(moveRight), for: .valueChanged)
}
@objc func moveRight(_ sender: UISlider) {
let currentValue = Int(sender.value)
print("ben:",currentValue)
}
}
最佳答案
首先,您需要在设置$0.translatesAutoresizingMaskIntoConstraints = false
时赋予滑块定位约束,例如top,Lead和width,这会使设置frame
无效,否则请对其进行注释并离开frame
行
滑块的minimumValue
和maximumValue
的第二个默认值分别为0,1,因此您需要根据需要进行设置
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(move)
move.minimumValue = 10
move.maximumValue = 50
move.frame = CGRect(x: view.center.x-115, y: view.center.y+200, width: 200, height: 30)
move.addTarget(self, action: #selector(moveRight), for: .valueChanged)
}
@objc func moveRight(_ sender: UISlider) {
let currentValue = Int(sender.value)
print("ben:",currentValue)
}
关于ios - 编程的UISlider值不变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58906466/