0

現在、アプリのプロトタイプを作成しています。プログラムでナビゲーション バーに一連のバー ボタンを追加しました。

NSArray *buttonTitles = [[NSArray alloc] initWithObjects:@"Alerts", @"Causes", @"Msgs", @"My Work", @"My Posts", nil];

NSMutableArray *rightBarButtons = [[NSMutableArray alloc] init];
for (int i = 0; i < 5; i++)
{
    UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    rightButton.frame = CGRectMake(0, 0, 44, 34);
    [rightButton setTitle:[buttonTitles objectAtIndex:i] forState:UIControlStateNormal];
    [rightButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    rightButton.titleLabel.font = [UIFont systemFontOfSize:10];
    rightItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton];
    [rightBarButtons addObject:rightItem];   
}

今のところ、特にナビゲーションバーに対して、それらは本当に醜く見えます. いくつかの画像(タブバーの画像に似ています)を取り、そこに配置してボタンを置き換えたいと思います。どうすればいいですか?

私の愚かさで申し訳ありませんが、私はこれに慣れていません。

ありがとう!

4

1 に答える 1

0
 [rightButton setBackgroundImage:@"image.png" forState:UIControlStateNormal];

あなたの質問を正しく理解していれば、うまくいきます。

for (int i = 0; i < 5; i++)
{
    NSString* imageName = [NSString stringWithFormat:@"image-%d", i];
    UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    rightButton.frame = CGRectMake(0, 0, 44, 34);
    [rightButton setTitle:[buttonTitles objectAtIndex:i] forState:UIControlStateNormal];
    [rightButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    rightButton.titleLabel.font = [UIFont systemFontOfSize:10];
    [rightButton setBackgroundImage:imageName forState:UIControlStateNormal];
    rightItem = [[UIBarButtonItem alloc] initWithCustomView:rightButton];
    [rightBarButtons addObject:rightItem];   
}

これが私たちができる方法です。image-%d の値を持つ文字列が割り当てられたNSString (imageName) を作成しましimage-1た。iimage-2i

次に、その[rightButton setBackgroundImage:imageName forState:UIControlStateNormal];部分で、作成した文字列の名前 (imageName) を取ります。

これは、ループのために画像に名前image-0を付ける必要があることを意味します。image-5

何かを解決する必要がある場合は、喜んで詳細を説明します。

于 2012-06-08T17:33:04.323 に答える