1

スクロールビューに動的な数のボタンを追加するアプリケーションがありました。通常の背景を設定し、 の背景を選択しましたUIButton。いくつかの理由で、次の方法でUIButton送信者メソッドをプログラムで呼び出す必要があります。

[self buttontapped:nil];

このように、コードを使用してボタンの背景を変更していません:

button.selected = YES;

ボタンの最初にこのような背景を設定しました:

    btn = [UIButton buttonWithType:UIButtonTypeCustom];
    int j = i+1;
    btn.frame = CGRectMake((j-1)*77, 0, 77, 44);
    [btn setBackgroundImage:[UIImage imageNamed:@"bar.png"] forState:UIControlStateNormal];
    [btn setBackgroundImage:[UIImage imageNamed:@"bar_hvr.png"] forState:UIControlStateSelected];
    btn.selected = NO;
    btn.backgroundColor = [UIColor clearColor];
    btn.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:14];
    btn.titleLabel.textColor = [UIColor whiteColor];

    [btn setTitle:head forState:UIControlStateNormal];
    btn.tag = i;
    [tabBarS addSubview:btn];

-(void)buttonTapped:(id)sender {
    if(sender==nil)
    {
        btn.tag=0;
    }

    for(int i=0;i<[sarray count];i++)
    {
           btn.selected=NO;  
     }
    btn = (UIButton *)sender;
    NSLog(@"Tab bar %d is clicked",btn.tag);
    [self tabCall:btn.tag];
    btn.selected = YES; 
}

しかし、背景の変更以外はすべて機能しています。どこが間違っていますか?

4

5 に答える 5

0

印刷しているログは、button.tag を正しく印刷しますか?

NSLog(@"タブバー %d がクリックされました",btn.tag);

于 2013-06-10T11:46:25.737 に答える
0

backgroundImageのプロパティではなく、画像のプロパティを設定する必要がありますUIButtondefaultImage プロパティとプロパティを使用しselectedます。

[btn setSelected:TRUE];
于 2013-06-10T11:09:12.150 に答える