【发布时间】:2016-06-22 16:47:53
【问题描述】:
我正在尝试设置 UISlider,以便在移动滑块时,拇指矩形上方会出现一个气泡,以显示当前值的设置。
单独移动视图可以正常工作,但是当更改该视图内标签的值时,标签会快速“跳”回我将 UIView 放置在情节提要上的初始位置,当滑块击中某个位置时轨道上的点。然后,一旦拇指矩形移动超过轨道上的 1 个像素,它就会立即跳回。
我已经制作了一个示例项目来复制这里的问题:https://github.com/austinmckinley/SliderBubbleTest
或者,这是我的 ViewController 的样子。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var slider: UISlider!
@IBOutlet weak var bubble: UIView!
@IBOutlet weak var bubbleLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func sliderMoved(sender: UISlider) {
let sliderValue = lroundf(sender.value)
let trackRect = sender.trackRectForBounds(sender.frame)
let thumbRect = sender.thumbRectForBounds(sender.bounds, trackRect: trackRect, value: Float(sliderValue))
bubble.center.x = thumbRect.midX
slider.value = Float(sliderValue)
// If this next line is commented, the jumping issue does not occur.
bubbleLabel.text = String(sliderValue)
}
}
【问题讨论】: