-2
sliderViewにテキストフィールドの変更を表示したいとします。つまり、ユーザーがテキストフィールドの値を変更すると、スライダーの値が更新されるはずです。 2つの親を持つRangeSliderを使用しています。スライダの値は、Webサービス呼び出しに基づいて設定されています。私はappDelegateクラスにレスポンスを格納しています。私はそれをフェッチしています。しかし、問題はUIControlクラスにあります。私はbeginTrackingとEndTrackingでappdelgateの値を取得しています。これらの関数は、スライド(ドラッグ)でいくつかの変更を行う場合にのみ呼び出されます。しかし、テキストフィールドを更新すると、初期化部分だけが呼び出されます。 init関数のappdelegateから値を取得する方法は?uiControlクラスのappdelegate値にアクセスする方法
class RangeSlider: UIControl {
var minimumValue = 0.0
var maximumValue = 100.0
var lowerValue = 0.0
var upperValue = 100.0
let trackLayer = CALayer()
let lowerThumbLayer = RangeSliderThumbLayer()
let upperThumbLayer = RangeSliderThumbLayer()
var previousLocation = CGPoint()
var thumbWidth: CGFloat {
return CGFloat(bounds.height)
}
override init(frame: CGRect) {
super.init(frame: frame)
trackLayer.backgroundColor = UIColor.yellow.cgColor
layer.addSublayer(trackLayer)
lowerThumbLayer.backgroundColor = UIColor.black.cgColor
layer.addSublayer(lowerThumbLayer)
upperThumbLayer.backgroundColor = UIColor.black.cgColor
layer.addSublayer(upperThumbLayer)
lowerThumbLayer.rangeSlider = self
upperThumbLayer.rangeSlider = self
updateLayerFrames()
}
}
イムのようなappDelegateインスタンスにアクセスすることができます....しかし、私はinitメソッドでそれを呼び出すときNANエラーが来ます.. ..なぜそれはそうですか? – Shpuj
アクセスしようとしているときに値が使用可能であることを確認する必要があります。これらの値が利用できないのは初めてです。値を0.0に初期化してみてください。 –
は、最小値= 0.0 するvar最大値= 0.0 するvar lowerValue = 0.0 するvar upperValue = 0.0 ........同じエラーが – Shpuj