2

このように作成したUIImagesの配列があります

UIImage *tButtonImage = [UIImage imageNamed:@"button-measurement.png"];
UIImage *tPButtonImage = [UIImage imageNamed:@"button-parts.png"];
UIImage *oPButtonImage = [UIImage imageNamed:@"button-onboard.png"];
UIImage *dButtonImage = [UIImage imageNamed:@"button-opening.png"];

// 次に、NSDicitonary / キー値のペアの対応する値に応じて、どの UIImage を配列に入れるかを決定します。

NSMutableArray *arrayOfButtonImages = [[NSMutableArray alloc] init];

if ([hasInfoSetIDString isEqualToString:@"T"]) {
    [arrayOfButtonImages addObject:tButtonImage];
}
if ([hasTSetIDString isEqualToString:@"T"]) {
    [arrayOfButtonImages addObject:tPButtonImage];
}
if ([hasOSetIDString isEqualToString:@"T"]) {
    [arrayOfButtonImages addObject:oPButtonImage];
}
if ([hasDSetIDString isEqualToString:@"T"]) {
    [arrayOfButtonImages addObject:dButtonImage];
}

この時点で、私の NSDictionary の値によっては、次のような配列を持っているかもしれません。

NSLog(@"%@", arrayOfButtonImages);

(
    "<UIImage: 0x2001f4c0>",
    "<UIImage: 0x1ed51c20>"
)

次に、それらの画像を私が持っているボタンに適用しようとするので、ボタンは言うまでもなく「動的」です。

if (arrayOfButtonImages != nil) {

            for (int i = 0; i < [arrayOfButtonImages count]; i++) {
                if (i == 0) {
                    [jumpButton1P setImage:[arrayOfButtonImages objectAtIndex:i] forState:UIControlStateNormal];
                }
                else if (i == 1) {
                    [jumpButton2P setImage:[arrayOfButtonImages objectAtIndex:i] forState:UIControlStateNormal];
                }
                else if (i == 2) {
                    [jumpButton3P setImage:[arrayOfButtonImages objectAtIndex:i] forState:UIControlStateNormal];
                }
                else if (i == 3) {
                    [jumpButton4P setImage:[arrayOfButtonImages objectAtIndex:i] forState:UIControlStateNormal];
                }
                else if (i == 4) {
                    [jumpButton5P setImage:[arrayOfButtonImages objectAtIndex:i] forState:UIControlStateNormal];
                }
            }
}

すべてのことを言って完了した後、画像が UIButton に表示されません.. UIButton 変数が Interface Builder の UIBUtton オブジェクトに接続されていることを確認しました..しかし、まだ何かがうまくいかない.

私は単純なことを試してみました

UIImage *btnImage1 = [UIImage imageNamed:@"diagram-P.png"];
[jumpButton1P setImage:btnImage1 forState:UIControlStateNormal];

これは機能しません。

うまくいけば、これはすべて理にかなっています..どんな助けでも大歓迎です。

4

3 に答える 3

2

代わりに backgroundImage を設定してみてください:

[jumpButton1P setBackgroundImage:[UIImage imageNamed:@"diagram-P"] forState:UIControlStateNormal];
于 2013-05-14T23:08:43.833 に答える
0

Interface Builder または手動でボタン タイプ = "Custom" を設定した後、再度テストします。

  UIButton *btnOne = [UIButton buttonWithType:UIButtonTypeCustom];

そして setImage または setBackgroundImage を呼び出します

それが役に立てば幸い

于 2013-05-14T23:18:58.123 に答える