web-dev-qa-db-ja.com

UIButton setTextをプログラムで

Xibファイルに約10個のUIButtonがあり、プログラムでsetTextを使用したい

37
user401383

次回質問するときには、より具体的になりたいかもしれません。

インターフェイスビルダーの各ボタンに異なるタグ(または必要に応じて同じタグ)を割り当ててから、次のコードを使用してみてください。

for (int i = 1 ; i<=10;i++)
{
     UIButton *myButton = (UIButton *)[myView viewWithTag:i];
     [myButton setTitle:@"my text" forState:UIControlStateNormal];
}
60
Ron Srebro

レイアウトからボタンのコレクションを作成できると思います:

Xibから最初のボタンを選択し、右ボタンでコードにドラッグします。 Drag firs button

次に、接続タイプに「アウトレットコレクション」を選択し、名前を割り当てる必要があります。

select Outlet collection

次に、コードにxibファイルのボタンの配列があります。

@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *buttons;

次に、作成したコレクションの上に他のボタンを選択してドラッグし、それらを繰り返したい順番に1つずつ実行します。 Drag the other buttons

接続インスペクターで、作成した配列にカーソルを合わせてボタンの順序を確認できます。 check button order

次に、各ボタンのテキストを設定します。

for (int i = 0; i<self.buttons.count; i++) {
    UIButton * button = self.buttons[i];
    [button setTitle: [NSString stringWithFormat:@"Button %d",i ] forState:UIControlStateNormal];
}

UIControlStateNormalがデフォルトの状態であり、オーバーライドされない場合、すべての状態に対して表示されることに注意してください。

一般に、状態にプロパティが指定されていない場合、デフォルトではUIControlStateNormal値が使用されます。 UIControlStateNormalの値が設定されていない場合、プロパティはデフォルトでシステム値になります。したがって、少なくとも、通常の状態の値を設定する必要があります。

それがお役に立てば幸いです

2
Jorge Arimany