Theo số documentation của Apple, có thể lập trình thiết lập giá trị của UISlider bằng hoạt ảnh mượt mà. Tôi đang cố gắng làm như vậy từ một bộ điều khiển xem tùy chỉnh, giao diện người dùng đang được xác định từ bảng phân cảnh.Tại sao hoạt ảnh UISlider của tôi không hoạt động?
Bối cảnh
Trong ví dụ của tôi, tôi đang cố gắng để cập nhật giá trị thanh trượt từ một bộ điều khiển giao diện tùy chỉnh, giao diện người dùng đã được xác định từ một kịch bản này. Ví dụ chỉ hiển thị một thanh trượt đơn.
Khi người dùng nhả thanh trượt, giá trị được đặt lại thành 0
.
Bộ luật
import UIKit
class ViewController: UIViewController {
@IBOutlet var mySlider: UISlider!
@IBAction func resetSlider() {
mySlider.setValue(0, animated:true)
NSLog("Reset!")
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
resetSlider
được liên kết với sự kiện Touch Up Inside
.
Vấn đề
Khi resetSlider
được gọi là giá trị không thay đổi về giao diện, nhưng nó không sinh động (giá trị đơn giản là "nhảy" tới 0). Mục tiêu của tôi là có giá trị duyên dáng chuyển về 0.
Lưu ý: "Đặt lại!" chỉ hiển thị một lần (mỗi lần nhấp), cho biết rằng resetSlider
không được gọi nhiều lần.
Tại sao UISlider này không hoạt ảnh?
Video
Kể từ IB là rất trực quan, here is a video của tình hình, mật khẩu là code
Ý tưởng tuyệt vời - than ôi, theo NSLog của tôi, nó chỉ được gọi một lần! – slifty
nếu bạn sử dụng khối hình động (xem câu trả lời đã chỉnh sửa) thì sao? đã xảy ra sự cố với hoạt ảnh của thanh trượt trong các phiên bản đầu, không chắc liệu đó có phải là vấn đề hay không. Ngoài ra, nó không cho cả iOS 7 và iOS 8? – f3n1kc
Buồn rằng điều này có một downvote, vì nó thực sự sửa chữa vấn đề. Có vẻ như sử dụng 'setValue: animated:' trong IBAction của thanh trượt không animate, đây có thể là lỗi UIKit. –