2016-09-23 53 views
-2

viewControllerにUIButtonがあり、目的のビューコントローラのコードが変更されるまですべて正常に機能しましたが、触れると表示されません。クラッシュ。ボタンが作成されたときに表示されない

  • 私はそのビューコントローラをチェックインしました。作成されました。透明ではなく、隠されていません。
  • は、私はそれ以外の場合はviewController
  • とは何の関係もありません、私は3つの制約があり、金切り声やボタンの場所に隠されているdestinationViewController

  • destinationViewControllerにこのボタンから移行するためのカスタムアニメーションを使用していますボタン:アスペクト比= 1:1、ボトム=ボトムレイアウトガイド+ 34、centerX

    @IBOutlet weak var calculateButton: UIButton! 
    
    override func viewDidLoad() { 
        calculateButton.isEnabled = false 
        calculateButton.layer.cornerRadius = calculateButton.frame.size.width/2 
    } 
    
    func textFieldShouldReturn(_ textField: UITextField) -> Bool { 
        if itemCountTextField.text != "" { 
         calculateButton.isEnabled = true 
        } else { 
         calculateButton.isEnabled = false 
        } 
        textField.resignFirstResponder() 
        return true 
    } 
    
    
    func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? { 
    
        transtion.transitionMode = .dismiss 
        transtion.startingPoint = calculateButton.center 
        transtion.circleColor = calculateButton.backgroundColor! 
    
        return transtion 
    } 
    
    func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? { 
    
        transtion.transitionMode = .present 
        transtion.startingPoint = calculateButton.center 
        transtion.circleColor = calculateButton.backgroundColor! 
    
        return transtion 
    } 
    

それが消えているのはなぜ?

+0

ボタンコードを追加できますか – gurmandeep

+1

おそらく制約を追加していないため、隠れている可能性があります。制約を制御します。 –

+0

@RashwanLが確認しました、制約の問題ではありません –

答えて

0

誰でもお答えします。 @ RashwanLは正しいです、我々はストーリーボードで設計するときに私たちの制約を制御する必要があります。

viewDidLoad()print(calculateButton.frame.size.width)を入れて、ボタンのサイズが1000であることがわかりました。次に、ボタンの制約を確認して、単純にしようとしましたが、修正されました。

1

viewDidAppearが呼び出されるまで、レイアウトは完了していないようです。 (XCode8)したがって、calculateButton.layer.cornerRadius = calculateButton.frame.size.width/2viewDidLoadで呼び出されたとき、calculateButtonのフレームサイズが正しくない可能性があります。また、大きすぎるコーナーの半径で終わる可能性があります。これは、viewDidAppearの後に見えない画像になります。

cornerRadiusを設定するかviewDidAppearにコードを呼び出す前に、self.view.layoutIfNeeded()を追加してみてください。アスペクト比= 1:1、下= 下レイアウトガイド+ 34、centerX

私はボタンを3つの制約がある

:また、あなたは3つの制約がある

を言いますこれは、ボタンのレイアウトを指定するだけでは不十分です。幅または高さのいずれかを指定する必要があります。 width == heightである限り、0ピクセルの高さと幅は完全に有効です。

関連する問題