2016-03-31 9 views
2

Swift 2を使用してXCodeでアプリケーションを開発していて、UIでエラーが発生しました。 UILabel、UITextView、およびUITextFieldをView Controllerに配置しました。View Controllerの要素が、クリックまたはタップすると消える

UITextFieldを入力する前に、すべて正常に機能しました。私はテキストフィールドを挿入し、適切な制約を割り当て、アプリケーションをシミュレートするときにテキストフィールドをクリックすると、UI要素がすべて消えたり、アルファが瞬間的にゼロになる(実際にはどちらが実際にハプニング)。

私はコンソールからのフィードバックを受けていないし、アプリケーション自体はクラッシュしません。ここで

は私のコードです:

//Declare the following UI objects to be manipulated 
@IBOutlet weak var labelOneTitle: UILabel! 
@IBOutlet weak var textDescription: UITextView! 

@IBOutlet weak var fieldInput: UITextField! 

override func viewDidLayoutSubviews() { 

    //Set UI object alphas to zero prior to loading the view 
    labelOneTitle.alpha = 0 
    textDescription.alpha = 0 
    fieldInput.alpha = 0 

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

    // Do any additional setup after loading the view. 
} 

override func viewDidAppear(animated: Bool) { 

    UIView.animateWithDuration(2) {() -> Void in 
     self.labelOneTitle.alpha = 1 
    } 
    UIView.animateWithDuration(3) {() -> Void in 
     self.textDescription.alpha = 1 
    } 
    UIView.animateWithDuration(3) {() -> Void in 
     self.fieldInput.alpha = 1 
    } 

} 

答えて

0

それはUIViewController .viewDidLayoutSubviewsすべての制約を再確認し、クラス参照ごとにビューを再構成であるかもしれない:境界がために変更すると

ビューコントローラのビューでは、ビューはサブビューの位置を調整し、システムはこのメソッドを呼び出します。ただし、このメソッドが呼び出されても、ビューのサブビューの個々のレイアウトが調整されたことは示されません。各サブビューは独自のレイアウトを調整します。

ビューがそのサブビューをレイアウトした後に、ビューコントローラがこのメソッドを変更して変更を加えることができます。この メソッドの既定の実装は何も行いません。

あなたはUITextFieldの上でクリックすると、キーボードは(おそらく)が表示されますので、あなたが0にアルファの設定に移動したい場合は0

にすべてのUI要素のアルファを設定する方法をリコール問題よりもviewDidLoad()が離れる可能性があります。

+0

これは機能しました!ありがとう、それは非常に感謝しています。 – Xonu

関連する問題