0

scrollViewで水平ナビゲーションメニューを作成しようとしています。メニューのすべてのアイテムについて、私は異なるイメージを持っていました。アイテムを選択したときに、このアイテムの背景画像を変更したいのですが、コードが機能しない理由がわかりません。

for (int i=0; i<12; i++) {
            UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
            UIImage *normal=[UIImage imageNamed:@"icon1"];
            UIImage *selec=[UIImage imageNamed:@"icon1down"];
            [btn setFrame:CGRectMake(i*larg, 0, 42.0, 43.0)];
            [btn setBackgroundImage:normal forState:UIControlStateNormal];
            [btn setBackgroundImage:selec forState:UIControlStateSelected];

            [scrollCat addSubview:btn];
            cx+=42.0;
    }
    [scrollCat setContentSize:CGSizeMake(cx, 43)];

このコードに悪いことはありますか?

4

1 に答える 1

0

UIControlStateHighlightedの代わりに試してくださいUIControlStateSelected。強調表示されているのは、ユーザーがボタンに触れたときの状態です。Selected は、セグメントなどの一部のコントロールにのみ使用されます。カスタム ボタン (つまり、選択されたままのボタン) は、Selected を利用します。

developer.apple.com の UIControl_Class ドキュメントから(強調は私のものです):

UIControlStateHighlighted

コントロールの強調表示された状態。コントロールは、トラッキング中にタッチが出入りするとき、およびタッチアップ イベントがあるときに、この状態になります。...

UIControlStateSelected

コントロールの選択状態。多くのコントロールでは、この状態は動作や外観に影響しません。ただし、他のサブクラス (UISegmentedControl クラスなど) は、選択された状態によって外観が異なる場合があります。...

于 2012-05-26T07:14:12.623 に答える