Interface Builderのボタンに接続されたIBActionがあります。
ランタイム中にコード内から(IB内の)ボタンのテキストを変更することは可能ですか?
コード内のアクションに接続されたボタンがある場合、インスタンス変数なしでタイトルを変更できます。
たとえば、ボタンがこのアクションに設定されている場合:
-(IBAction)startSomething:(id)sender;
メソッドでこれを簡単に行うことができます:
-(IBAction)startSomething:(id)sender {
[sender setTitle:@"Hello" forState:UIControlStateNormal];
}
または、ボタンの名前を切り替えたい場合は、「buttonToggled」という名前のBOOL
(たとえば)を作成し、この方法で名前を切り替えます。
-(IBAction)toggleButton:(id)sender {
if (!buttonToggled) {
[sender setTitle:@"Something" forState:UIControlStateNormal];
buttonToggled = YES;
}
else {
[sender setTitle:@"Different" forState:UIControlStateNormal];
buttonToggled = NO;
}
}
UIButton *myButton;
[myButton setTitle:@"My Title" forState:UIControlStateNormal];
[myButton setTitle:@"My Selected Title" forState:UIControlStateSelected];
はい。 UIButtonにメソッドがあります-setTitle:forState:
それを使用します。
[myButton setTitle:@"Play" forState:UIControlStateNormal];
切り替える別の方法:
- (IBAction)signOnClick:(id)sender
{
if ([_signOnButton.titleLabel.text isEqualToString:@"Sign off"])
{
[sender setTitle:@"Sign on" forState:UIControlStateNormal];
}
else
{
[sender setTitle:@"Sign off" forState:UIControlStateNormal];
}
}
myapp.h
{
UIButton *myButton;
}
@property (nonatomic,retain)IBoutlet UIButton *myButton;
myapp.m
@synthesize myButton;
-(IBACtion)buttonTitle{
[myButton setTitle:@"Play" forState:UIControlStateNormal];
}
If {} else {}制御フローを追加する必要はありません。 ViewまたはViewControllerコンストラクターでさまざまな状態のボタンテキストを初期化します。
[btnCheckButton setTitle:@ "Normal" forState:UIControlStateNormal]; [btnCheckButton setTitle:@ "Selected" forState:UIControlStateSelected];
次に、ボタンの状態を選択済みに切り替えます。
[btnCheckButton setSelected:YES];
次に、ボタンの状態を通常に切り替えます。
[btnCheckButton setSelected:NO];