[解決済み] iOSの場合。テキストの長さに応じたUIButtonのリサイズ
2022-05-13 12:52:33
質問
インターフェイスビルダで コマンド + = は、テキストに合うようにボタンのサイズを変更します。私は、ボタンがビューに追加される前に、これをプログラムで行うことが可能であるかどうか疑問に思っていました。
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button.titleLabel setFont:[UIFont fontWithName:@"Arial-BoldMT" size:12]];
[button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
// I need to know the width needed to accomodate NSStringVariable
[button setTitle:NSStringVariable forState:UIControlStateNormal];
// So that I can set the width property of the button before addSubview
[button setFrame:CGRectMake(10, 0, width, fixedHeight)];
[subNavigation addSubview:button];
どのように解決するのですか?
Xcode 4.5以降では、'strong'を使用することで、これを行うことができるようになりました。 オートレイアウト/コンストレイント '.
主な利点は、以下の通りです。
- プログラムでフレームを設定する必要が全くない!
- 正しく行えば、向きが変わってもフレームをリセットすることに悩まされることはありません。
- また、デバイスの変更に悩まされることもありません(異なるスクリーンサイズのために別々にコーディングする必要がないことを読んでください)。
いくつかの欠点があります。
- 後方互換性がない - iOS 6 以降でのみ動作します。
- 慣れる必要があります (ただし、後で時間を節約できます)。
最もクールなことは、次のようなインテントを宣言することに集中できるようになることです。
- これら 2 つのボタンの幅を同じにしたい。
- このビューを垂直方向に中央に配置し、スーパー ビューの端から最大 10 pts の範囲に拡張する必要があります; または。
- このボタン/ラベルが、表示しているラベルに応じてサイズ変更されるようにしたい!
ここで は、自動レイアウトを導入するための簡単なチュートリアルです。
に対して 詳細 .
最初は時間がかかりますが、確かに努力する価値はありそうです。
関連
-
[解決済み] 基本的なUIButtonをプログラムで作成するには?
-
[解決済み] UILabel 内のテキストを縦に上部に揃える
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] iOSまたはmacOSで、インターネット接続が有効かどうかを確認するにはどうすればよいですか?
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] iOSのバージョンを確認する方法を教えてください。
-
[解決済み] Swiftの配列を文字列に変換するには?
-
[解決済み】iOSアプリの名前を変更する方法は?
-
[解決済み】UIButtonに複数行のテキストを追加する方法は?
-
[解決済み】UIButtonがターゲットアクションを全て削除する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
制御が非ボイド関数の終了に達する
-
[解決済み] 文字列の長さを取得する
-
[解決済み] Objective-Cで文字列が空かどうかをテストするにはどうすればよいですか?
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] UIViewの左上と右上だけにcornerRadiusを設定する方法は?
-
[解決済み] NSOperationとGrand Central Dispatchの比較
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み] iPhoneでナビゲーションバーを1ページ目だけ非表示にする