IOS 6 到 Swift2 更新滑块

IOS 6 to Swift2 update Slider

有人可以帮助我编写这段代码吗?
它是一个滑块,用于更改标签中字体的大小。这在 IOS6 中有效,但我正在尝试在 Swift 上 运行 2。
提前致谢。

import UIKit

class ViewController: UIViewController {

    @IBAction func defaultSlider1(sender: UISlider) {

        UISlider *slide = (UISlider *)sender;
        int fonts = (int)(slide.value);
        NSString *newtext = NSlog("%d", fonts);
        label.font = [UIFont systemFontOfSize:fonts];
        label.text = newtext;

    }
    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

请尝试以下示例 (Demo):

import UIKit

class ViewController: UIViewController {


    private var slider: UISlider!
    private var label: UILabel!

    private let minimumFontSize: Float = 16
    private let maximumFontSize: Float = 48


    override func viewDidLoad() {
        super.viewDidLoad()

        let width: CGFloat  = view.bounds.width / 2
        let height: CGFloat = 44.0

        let size    = CGSize(width: width, height: height)
        let origin  = CGPoint(x: self.view.center.x - (width / 2), y: self.view.center.y)

        createSlider(origin, size: size)
        createLabel(origin, size: size)
        sliderAction()
    }

    func createSlider(origin: CGPoint, size: CGSize) {

        let frame = CGRect(origin: origin, size: size)

        self.slider = UISlider(frame: frame)
        self.slider.addTarget(self,
            action: Selector("sliderAction"),
            forControlEvents: UIControlEvents.ValueChanged)

        self.slider.minimumValue = minimumFontSize
        self.slider.maximumValue = maximumFontSize

        view.addSubview(self.slider)
    }

    func createLabel(origin: CGPoint, size: CGSize) {
        let labelOrigin = CGPoint(x: origin.x, y: origin.y + size.height)
        let frame = CGRect(origin: labelOrigin, size: size)

        self.label = UILabel(frame: frame)
        self.label.textAlignment = NSTextAlignment.Center

        view.addSubview(self.label)
    }

    func sliderAction() {
        let fontSize = CGFloat(self.slider.value)

        self.label.font = UIFont.systemFontOfSize(fontSize)
        self.label.text = "\(Int(fontSize))"
    }

}

如果您使用 故事板:

  • 将 UISlider 和 UILabel 添加到故事板上的视图控制器场景
  • 为每个控件插入 @IBOutlets(Ctrl+Drag 从 Storyboard 上的控件到代码,从 Connection 列表中选择 Outlet
  • 为滑块的 Value Changed 事件插入 @IBActionCtrl+Drag 从 Storyboard 上的滑块控件进行编码,从 Connection 列表中选择 Action

你可能会得到类似这样的结果:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var slider: UISlider!
    @IBOutlet weak var label: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.slider.minimumValue = 16
        self.slider.maximumValue = 48

        self.sliderAction()
    }

    @IBAction func sliderValueChangedAction(sender: UISlider) {
        self.sliderAction()
    }

    private func sliderAction() {
        let fontSize = CGFloat(self.slider.value)

        self.label.font = UIFont.systemFontOfSize(fontSize)
        self.label.text = "\(Int(fontSize))"
    }

}