2017-08-03 63 views
-2

我想在sliderView中顯示文本字段更改。即,當用戶改變文本字段中的值時,滑塊值應該被更新。我正在使用帶有兩個拇指的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() 
    } 
} 

回答

0

您可以訪問的appDelegate實例這樣

let appDelegate = UIApplication.shared.delegate as? AppDelegate 
let someValue = appDelegate?.someVariableInAppDelegate 
+0

林能夠訪問內部開始跟蹤和結束跟蹤....但是當我把它在init方法NAN錯誤會來..爲什麼是這樣? – Shpuj

+0

需要確保這些值在您嘗試訪問它們時可用。可能是第一次這些值不可用。嘗試將值初始化爲0.0。 –

+0

有初始化中的appDelegate和UIControl值class..var minimumValue = 0.0 變種maximumValue = 0.0 變種lowerValue = 0.0 變種upperValue = 0.0 ........同樣的錯誤快到 – Shpuj

相關問題