iOSの自動レイアウトを使用してメニューのボタンを中央に配置するにはどうすればよいですか?

マットフェロー

iOSのメニューの水平方向の中央にプログラムでボタンを追加しようとしています。そのため、各ボタンは前のボタンの下に表示されます。

私のメニューはと呼ばれるUIViewでviewToPlaceButtonsOnあり、最後に配置されpreviousButtonボタンを格納するための変数があります

かなり単純なようですよね?誰かが私がこれをそんなに間違っている理由を理解するのを手伝ってくれる?

- (void)makeButton:(NSString*) buttonTitle {
    UIButton* menuButton = [[UIButton alloc] init];
    [menuButton setTitle: buttonTitle forState:UIControlStateNormal];
    [menuButton setBackgroundColor:[UIColor redColor]];
    [viewToPlaceButtonsOn addSubview:menuButton];

    [viewToPlaceButtonsOn addConstraint:[NSLayoutConstraint constraintWithItem:menuButton
                                                                 attribute:NSLayoutAttributeCenterX
                                                                 relatedBy:NSLayoutRelationEqual
                                                                    toItem:previousButton
                                                                 attribute:NSLayoutAttributeCenterX
                                                                multiplier:1.0f
                                                                  constant:0.0f]];

    [viewToPlaceButtonsOn addConstraint:[NSLayoutConstraint constraintWithItem:menuButton
                                                                 attribute:NSLayoutAttributeTop
                                                                 relatedBy:NSLayoutRelationEqual
                                                                    toItem:previousButton
                                                                 attribute:NSLayoutAttributeTop
                                                                multiplier:1.0f
                                                                  constant:50.0f]];

    [viewToPlaceButtonsOn addConstraint:[NSLayoutConstraint constraintWithItem:menuButton
                                                       attribute:NSLayoutAttributeWidth
                                                       relatedBy:NSLayoutRelationEqual
                                                          toItem:nil
                                                       attribute:NSLayoutAttributeNotAnAttribute
                                                      multiplier:1.0F
                                                        constant:200]];

    [viewToPlaceButtonsOn addConstraint:[NSLayoutConstraint constraintWithItem:menuButton
                                                       attribute:NSLayoutAttributeHeight
                                                       relatedBy:NSLayoutRelationEqual
                                                          toItem:nil
                                                       attribute:NSLayoutAttributeNotAnAttribute
                                                      multiplier:1.0F
                                                        constant:40]];

    NSLog(@"Button's Frame: %f x %f (%f x %f)", [menuButton frame].origin.x, [menuButton frame].origin.y, [menuButton frame].size.width, [menuButton frame].size.height);

    previousButton = menuButton;
}
ブランドン

すぐにいくつかのことが浮かび上がります。設定する必要があります

menuButton.translatesAutoresizingMaskIntoConstraints = NO; 

制約を正しくするために、そうでない場合は自動レイアウトが独自の制約を追加します。

また、その時点でレイアウトが実行されていないため、NSLogは正確ではありません。layoutSubviewsが呼び出されると、ビューフレームは自動レイアウトによって設定されます。これを確認するには、デバッガーを使用して、メソッド呼び出しの最後にボタンを出力します。

po menuButton

次に、続行してからプログラムを一時停止し、前の位置から取得したボタンのメモリアドレスをコピーして貼り付けると、フレームが設定されていることがわかります。

po 0x039484

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

iOSの自動レイアウトを使用して、3つのボタンを間隔を空けて中央に並べて配置するにはどうすればよいですか?

分類Dev

自動レイアウトを使用して、UIViewを他の2つのUIViewの中央に配置するにはどうすればよいですか?

分類Dev

IBで自動レイアウトを使用して、プログラムでUIViewを画面の中央に配置するにはどうすればよいですか?

分類Dev

スタックビューを使用してラベルとボタンを自動レイアウトするにはどうすればよいですか?

分類Dev

自動レイアウトを使用して2つのボタンを一列に並べるにはどうすればよいですか?

分類Dev

iOSの自動レイアウトを使用して、2つのラベルを間隔を空けて中央に並べてプログラムで配置するにはどうすればよいですか?

分類Dev

iOSの自動レイアウトを使用して、2つのラベルを間隔を空けて中央に並べてプログラムで配置するにはどうすればよいですか?

分類Dev

iOSで自動レイアウトを使用して、ラベルを含むビューの高さの3分の1にラベルを配置するにはどうすればよいですか?

分類Dev

メニューボタンを中央に配置するにはどうすればよいですか?

分類Dev

プログラムで自動レイアウト制約を追加して、ボタンをスーパービューの下部から50ポイント上に作成するにはどうすればよいですか?

分類Dev

iPhoneのuiviewコントローラーのボタンを自動レイアウトするにはどうすればよいですか?

分類Dev

自動レイアウトを使用して合計幅のパーセンテージを作成するにはどうすればよいですか?

分類Dev

xmlを介して2つのボタンにアニメーションのセットを配置するにはどうすればよいですか?

分類Dev

アイコンを除くメニューのテキストを中央に配置するにはどうすればよいですか?

分類Dev

自動レイアウトiOSでビューの下端と上端を別のビューに制限するにはどうすればよいですか?

分類Dev

メニューを使用してJavaSwingの異なるレイアウトを切り替えるにはどうすればよいですか?

分類Dev

スタックビューを使用してボタンをコンテナの中央に配置するにはどうすればよいですか?

分類Dev

Haskellで、制約をパラメトリックニュータイプにアタッチして、それを使用するすべてのクラスインスタンスに自動的に適用されるようにするにはどうすればよいですか?

分類Dev

レイアウトの下部にある画面の幅を埋めるために2つ以上のボタンを並べて設定するにはどうすればよいですか(スティッキーメニューとは異なります)。

分類Dev

メニューを開くすべてのリストアイテムへのボタンを作成するにはどうすればよいですか?

分類Dev

自動レイアウトを使用して、UIViewの高さを基準にしてUILabelを移動するにはどうすればよいですか?

分類Dev

自動レイアウト制約を使用して、ボタンの位置を他のボタンへの参照でプログラムで変更するにはどうすればよいですか?

分類Dev

自動レイアウトでUITableViewCellの動的な高さを使用し、下部のビューが非表示になっているときに他のビューを上に移動するにはどうすればよいですか?

分類Dev

自動レイアウトでUITableViewCellの動的な高さを使用し、下部のビューが非表示になっているときに他のビューを上に移動するにはどうすればよいですか?

分類Dev

自動レイアウトでラベルとボタンのタイトルを修正するにはどうすればよいですか?

分類Dev

コーディネーターのレイアウトと動作を使用してCardViewでこのアニメーションを実行するにはどうすればよいですか?

分類Dev

カスタムレイアウトをナビゲーションドロワーの中央に配置するにはどうすればよいですか?

分類Dev

Google AppsScriptを使用してGoogleドキュメントページのテーブルを中央に配置するにはどうすればよいですか

分類Dev

BootstrapとFontAwesomeを使用してドロップダウンメニューのアイコンを使用するにはどうすればよいですか?

Related 関連記事

  1. 1

    iOSの自動レイアウトを使用して、3つのボタンを間隔を空けて中央に並べて配置するにはどうすればよいですか?

  2. 2

    自動レイアウトを使用して、UIViewを他の2つのUIViewの中央に配置するにはどうすればよいですか?

  3. 3

    IBで自動レイアウトを使用して、プログラムでUIViewを画面の中央に配置するにはどうすればよいですか?

  4. 4

    スタックビューを使用してラベルとボタンを自動レイアウトするにはどうすればよいですか?

  5. 5

    自動レイアウトを使用して2つのボタンを一列に並べるにはどうすればよいですか?

  6. 6

    iOSの自動レイアウトを使用して、2つのラベルを間隔を空けて中央に並べてプログラムで配置するにはどうすればよいですか?

  7. 7

    iOSの自動レイアウトを使用して、2つのラベルを間隔を空けて中央に並べてプログラムで配置するにはどうすればよいですか?

  8. 8

    iOSで自動レイアウトを使用して、ラベルを含むビューの高さの3分の1にラベルを配置するにはどうすればよいですか?

  9. 9

    メニューボタンを中央に配置するにはどうすればよいですか?

  10. 10

    プログラムで自動レイアウト制約を追加して、ボタンをスーパービューの下部から50ポイント上に作成するにはどうすればよいですか?

  11. 11

    iPhoneのuiviewコントローラーのボタンを自動レイアウトするにはどうすればよいですか?

  12. 12

    自動レイアウトを使用して合計幅のパーセンテージを作成するにはどうすればよいですか?

  13. 13

    xmlを介して2つのボタンにアニメーションのセットを配置するにはどうすればよいですか?

  14. 14

    アイコンを除くメニューのテキストを中央に配置するにはどうすればよいですか?

  15. 15

    自動レイアウトiOSでビューの下端と上端を別のビューに制限するにはどうすればよいですか?

  16. 16

    メニューを使用してJavaSwingの異なるレイアウトを切り替えるにはどうすればよいですか?

  17. 17

    スタックビューを使用してボタンをコンテナの中央に配置するにはどうすればよいですか?

  18. 18

    Haskellで、制約をパラメトリックニュータイプにアタッチして、それを使用するすべてのクラスインスタンスに自動的に適用されるようにするにはどうすればよいですか?

  19. 19

    レイアウトの下部にある画面の幅を埋めるために2つ以上のボタンを並べて設定するにはどうすればよいですか(スティッキーメニューとは異なります)。

  20. 20

    メニューを開くすべてのリストアイテムへのボタンを作成するにはどうすればよいですか?

  21. 21

    自動レイアウトを使用して、UIViewの高さを基準にしてUILabelを移動するにはどうすればよいですか?

  22. 22

    自動レイアウト制約を使用して、ボタンの位置を他のボタンへの参照でプログラムで変更するにはどうすればよいですか?

  23. 23

    自動レイアウトでUITableViewCellの動的な高さを使用し、下部のビューが非表示になっているときに他のビューを上に移動するにはどうすればよいですか?

  24. 24

    自動レイアウトでUITableViewCellの動的な高さを使用し、下部のビューが非表示になっているときに他のビューを上に移動するにはどうすればよいですか?

  25. 25

    自動レイアウトでラベルとボタンのタイトルを修正するにはどうすればよいですか?

  26. 26

    コーディネーターのレイアウトと動作を使用してCardViewでこのアニメーションを実行するにはどうすればよいですか?

  27. 27

    カスタムレイアウトをナビゲーションドロワーの中央に配置するにはどうすればよいですか?

  28. 28

    Google AppsScriptを使用してGoogleドキュメントページのテーブルを中央に配置するにはどうすればよいですか

  29. 29

    BootstrapとFontAwesomeを使用してドロップダウンメニューのアイコンを使用するにはどうすればよいですか?

ホットタグ

アーカイブ