2017-02-24 2 views
0

UIButtonをプログラムで追加してSwiftに追加します。translatesAutoresizingMaskIntoConstraintsは、

private let startBtn: UIButton = { 
    let btn = UIButton(type: .system) 
    btn.translatesAutoresizingMaskIntoConstraints = false 
    btn.setTitle("Get Started!", for: .normal) 
    btn.backgroundColor = UIColor(red: 0, green: 1, blue: 1, alpha: 1.0) 
    btn.addTarget(self, action: #selector(ratingButtonTapped), for: .touchUpInside) 
    btn.setTitleColor(.white, for: .normal) 
    btn.layer.cornerRadius = 6 
    btn.layer.zPosition = 3 
    return btn 
}() 

の罰金、私はUIButtonをタップしたときを除いてすべて、ratingButtonTapped()が呼び出されていません。

func ratingButtonTapped(_ button: UIButton) { 
    print("Button pressed") 
} 

私はtranslatesAutoresizingMaskIntoConstraintstrueratingButtonTapped()を変更

が呼び出されます。

view.translatesAutoresizingMaskIntoConstraints = true 

ただし、UIButtonは画面に表示されません。私はこれがAutoLayoutと関係があると思います(私はプログラムで要素を追加するのが初めてです)。私は視覚的なフォーマットとフレームの使用を避けたいので、AutoLayoutを使い続けたいと思います。これを行う方法はありますか?

ありがとうございます。

+0

ボタンはサブビューとしてどこに追加しますか? – Yannick

+0

「選択」画面のコードに2つのボタンが作成されています。また、私は自動レイアウトを使用しているため、マスクフラグをオフにしています。すべての端末とiOS 9以降で完全に動作します。あなたのコードに他の何かが間違っています。 – dfd

+0

ボタンファームはどこですか? –

答えて

0

1:あなたのUIButtonがあなたのUIButtonに触れることを妨げるもう1つのUIViewで覆われていないことを確認してください。

2:UIButtonが追加されたスーパービューの「外側」でないことを確認します。たとえば、UIViewの中にそれがあり、UIButtonUIViewrectの外にある場合、タッチは届きません。

これらの問題は、間違ったレイアウト制約/フレームが間違っていると発生する可能性があります。

関連する問題