7

iPhoneプロジェクトでストーリーボード機能を使用しています。ストーリーボードには、プロトタイプセルを使用したテーブルビューを備えたビューコントローラがあります。プロトタイプセル内に、サブクラス化されたUIButtonクラスに接続されたUIButton(角の丸い長方形)があります。テーブルビューは配列からデータを取得し、データはcellForRowAtIndexPathに出力されます。

cellForRowAtIndexPath内で、セルの外観を条件付きで変更します。これは私が問題を抱え始めたときです。ボタンのテキストを正常に変更できます。ただし、ボタンの画像を変更しようとすると、次のコマンドを使用します。

[cell.myButton setImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];

画像は変更されますが、テキストは消えます。

ボタンのテキストの色を変更しようとすると、次を使用します。

[cell.myButton setTitleColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:.77] forState:UIControlStateNormal]

何も起こりません。色は同じままです(画像を変更しようとしない限り、画像は完全に消えます)。

私はここで根本的に間違ったことをしていると感じています-何か提案はありますか?

4

5 に答える 5

7

使用する

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;   

テキストを残して画像を変更するには

使用する

btn.titleLabel.textColor = yourcolor;

テキストの色を変更するには

于 2012-05-07T09:59:55.863 に答える
4

myButtonを以下のように定義して確認します。これはコードで間違っている可能性があります。コードは次のとおりです。

myButton = [UIButton buttonWithType:UIButtonTypeCustom];

これは新しく編集された部分です:

[myButton setBackgroundImage:yourimage forState:UIControlStateNormal];
    [myButton setTitleColor:yourcolor forState:UIControlStateNormal];
于 2012-05-07T09:56:16.473 に答える
2

これは、カスタムボタンにさまざまなプロパティを設定する方法です...setBackgroudimageプロパティとsetTitleColorプロパティもここにあります...

    UIButtin  *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
   [myButton setFrame:CGRectMake(165, 205, 65, 40)];
   [myButton setTitleColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:.77]  forState:UIControlStateNormal];
   [myButton setTitle:@"Hi....." forState:UIControlStateNormal];
   [myButton addTarget:self action:@selector(btnClicked:)     forControlEvents:UIControlEventTouchUpInside];
   [myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];
   [cell  addSubview:myButton];

ありがとう..

于 2012-05-07T12:09:13.387 に答える
0

私はあなたが望むのはあなたのボタンの背景を変えることだと思います:

[cell.myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];
于 2012-05-07T10:13:15.183 に答える
0

ボタン前面の画像をボタンメイン画像に設定しているため、テキストが消えます。

[cell.myButton setImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];

UIButtonコンテキストの背面に画像が描画されるときにテキストが表示されるように、ボタンの背景画像を設定する必要があります。

したがって、上記のコード行を次のように置き換えるだけです。

[cell.myButton setBackgroundImage:[UIImage imageNamed:@"mynewimage.png"] forState:UIControlStateNormal];
于 2012-05-07T10:32:50.287 に答える