2

3つのボタンのいずれかをクリックすることに応じて、3つのボタンの外観(TitleLable +背景)とTextViewのテキストを変更しようとしています。(タブ付きコンテンツのようなもの)

xibに4つの要素を作成し、それらを.hにリンクしました。

   IBOutlet UIButton *buttonTab1;
    IBOutlet UIButton *buttonTab2;
    IBOutlet UIButton *buttonTab3;

    IBOutlet UITextView *thisDescription;

    - (IBAction)showTab1:(id)sender;
    - (IBAction)showTab2:(id)sender;
    - (IBAction)showTab3:(id)sender;

@property (strong, nonatomic) IBOutlet UIButton *buttonTab1;
@property (strong, nonatomic) IBOutlet UIButton *buttonTab2;
@property (strong, nonatomic) IBOutlet UIButton *buttonTab3;

.miで、4つの要素(ここではボタン1のコード)を変更してみてください。

@synthesize buttonTab1, buttonTab2, buttonTab3;

- (IBAction)showTab1:(id)sender{
        thisDescription.text = [NSString stringWithFormat:@"INHALT TAB 1: %@",transferDescription];
        buttonTab1.imageView.image = [UIImage imageNamed:@"content_tab1_on.png"];
        buttonTab2.imageView.image = [UIImage imageNamed:@"content_tab2.png"];
        buttonTab3.imageView.image = [UIImage imageNamed:@"content_tab3.png"];
        buttonTab1.titleLabel.text = @"Tab1on";
        buttonTab2.titleLabel.text = @"Tab2";
        buttonTab3.titleLabel.text = @"Tab3";
    }

TextViewElementのテキストは正常に変更されますが、タイトルと背景はxibの場合と同じです。

4

2 に答える 2

1

ボタンに背景画像とタイトルを設定するには、setTitle:forState:メソッドとsetBackgroundImage:forState:メソッドを使用する必要があります。ボタンは状態によってタイトルや背景が異なる場合があるため、画像やラベルを直接設定しても機能しません。

これにより、コードでこれを実装する方法についてのアイデアが得られるはずです。

[buttonTab1 setBackgroundImage:[UIImage imageNamed:@"content_tab1_on.png"] forState:UIControlStateNormal];
[buttonTab2 setBackgroundImage:[UIImage imageNamed:@"content_tab2.png"] forState:UIControlStateNormal];
[buttonTab3 setBackgroundImage:[UIImage imageNamed:@"content_tab3.png"] forState:UIControlStateNormal];
[buttonTab1 setTitle:@"Tab1on" forState:UIControlStateNormal];
[buttonTab2 setTitle:@"Tab2" forState:UIControlStateNormal];
[buttonTab3 setTitle:@"Tab3" forState:UIControlStateNormal];
于 2012-11-29T11:19:01.967 に答える
0

ポイントは、コード内の背景画像を変更しないことです。あなたがすることは、UIButton オブジェクトの (フォアグラウンド) イメージを設定することです。最終的には、IB で定義された背景画像、プログラムで設定されたテキスト、およびプログラムで設定された画像になります。

原則として、それは機能するはずであり、間違いに気付くことさえありませんが、UIButton では、画像とテキストを同時に設定することはできません。Button には、両方ではなくいずれかが含まれます。または、少なくとも両方を同時に表示することはできません。

解決策: 画像の代わりに背景画像を設定します。

于 2012-11-29T11:47:09.247 に答える