Как получить доступ к значению UIStepper внутри класса Cocoa Touch

Я пытаюсь создать собственный ползунок, используя класс касания какао, максимальное значение которого определяется UIStepper. У меня есть UIStepper, подключенный к моему контроллеру представления, и я хочу ссылаться на его значение внутри класса касания какао как на максимальное значение ползунка. Каков синтаксис для ссылки на значение степпера внутри класса?

Я продолжаю получать ошибку use of unresolved identifier.

Вот мой viewController:

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var stepperValue: UIStepper!

    @IBOutlet weak var label: UILabel!

    let slider1 = Slider1(frame: CGRectZero)


    override func viewDidLoad() {
        super.viewDidLoad()

        label.textColor = UIColor.darkTextColor()
        slider1.backgroundColor = UIColor.lightGrayColor()
        view.addSubview(slider1)

    }

    override func viewDidLayoutSubviews() {
        let margin: CGFloat = 20.0
        let width = view.bounds.width - 2 * margin
        slider1.frame = CGRect(x: margin, y: 3 * margin, width: width, height: 1.5 * margin)
    }

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

Вот мой подкласс UIControl:

class Slider1: UIControl {

    var minimumValue = 0.0
    var maximumValue = stepperValue.value
    var value = 0

    let trackLayer = CALayer()
    var trackHeight:CGFloat = 2.0
    var trackColor = UIColor.blackColor().CGColor

    var tickHeight:CGFloat = 8.0
    var tickWidth: CGFloat = 2.0
    var tickColor = UIColor.blackColor().CGColor

    let thumbLayer = CALayer()
    var thumbColor = UIColor.blackColor().CGColor
    var thumbMargin:CGFloat = 2.0

    var thumbWidth: CGFloat {
        return CGFloat(bounds.height)
    }
}

person shavedape    schedule 24.06.2015    source источник
comment
Я имею в виду, что Slider1 понятия не имеет, что такое stepperValue, потому что он объявлен в вашем ViewController. Вам нужно будет установить его в своем ViewController.   -  person rocky    schedule 25.06.2015


Ответы (1)


Если вам нужен слайдер, используйте слайдер. У вас будет МНОГО работы, если вы хотите создать свой собственный элемент управления, похожий на слайдер, начиная с UIControl.

Просто сделайте так, чтобы ваш контроллер представления управлял всем.

Событие изменения значения на вашем степпере запускает действие в контроллере представления.

В этом действии stepperValueChanged извлеките новое значение степпера и используйте его для изменения максимального значения ползунка. Вот и все.

person Duncan C    schedule 25.06.2015