2017-08-20 19 views
-1

輸入のUIKitUIViewのUILableのプロパティを迅速に保存する方法は?

クラスAboutView:UIViewの{

@IBOutlet var aboutView: UIView! 
@IBOutlet weak var studioTXT: UILabel! 

@IBOutlet weak var closeBTN: UIButton! 

var studioTxtTo : CGFloat 

override init(frame: CGRect) { 
    super.init(frame: frame) 
    initializeViews() 
} 

required init?(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 
    initializeViews() 
} 

private func initializeViews(){ 
    Bundle.main.loadNibNamed("AboutView", owner: self) 
    addSubview(aboutView) 

    studioTxtTo = self.studioTXT.frame.origin.y 
    self.studioTXT.frame.origin.y = self.studioTXT.frame.origin.y + 55 
} 

@IBAction func onIn(_ sender: Any) { 
    in() 
} 

func in(){ 

    UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.0, options: .curveEaseInOut, animations: { 

    self.studioTXT.frame.origin.y = self.studioTxtTo 

    }, completion: { _ in 
     // 
    }) 
} 

}

私はアニメーションを作成するために、私のラベルの起源Yのperopertieを保存しますが、でsuper.initでエラーを取得する必要があります(フレーム:フレーム)とsuper.init(コーダー:aDecoder)はstudioTxtTo

+0

でsuper.initコールで初期化されていないプロパティ「self.studioTxtTo」 –

答えて

1

は、次の例のように、あなたの定義を変更、studioTxtToの初期値を提供する必要があります。

var studioTxtTo : CGFloat = 0.0 
1

のインスタンスプロパティstudioTxtToです。 は、イニシャライザが初期化を完了するまでに、このインスタンスのプロパティに初期値を与える必要があります。エラーメッセージが正しくあなたに伝えられるので、あなたはそれをやり遂げていません(両方のイニシャライザで)。それをやりなさい。

関連する問題