0

XCodeを使用して、誰かが私のボタンの1つをクリックまたは押したときに、2番目の画面に移動する前に、別の画像を表示する方法を見つけようとしています。たとえば、ホーム画面に連絡先アイコンがあります。ユーザーがアイコンをクリックすると、連絡先画面に移動する前に、タップすると暗いバージョンに変わるはずです。どんな助けでも大歓迎です。

-(IBAction) ButtonPressed :(id)sender
{
UIButton *tempButton = (UIButton *) sender;
int tag = tempButton.tag;
NSString *viewName;
switch (tag) 
{
    case 1:
        [FlurryAnalytics logEvent:@"Contact-Screen"];
        viewName = @"ContactScreen";
        if( self.appDelegate.sound)
            [Click play];
        [self.appDelegate moveToView:viewName];
        break;
}
}
4

3 に答える 3

3

簡単です。ボタンの選択状態に別の画像を設定するだけです。

[myButton setImage:[UIImage imageNamed:@"mySelectedImage"] forState:UIControlStateSelected];

またはインターフェイスビルダーで:

ここに画像の説明を入力してください

追加のUIControlState's内容:

enum {
   UIControlStateNormal               = 0,
   UIControlStateHighlighted          = 1 << 0,
   UIControlStateDisabled             = 1 << 1,
   UIControlStateSelected             = 1 << 2,
   UIControlStateApplication          = 0x00FF0000,
   UIControlStateReserved             = 0xFF000000
};

コントロールの状態。コントロールは、一度に複数の状態を持つことができます。コントロールによって、状態の認識が異なります。たとえば、UIButtonインスタンスは(setImage:forState:メソッドを使用して)通常の状態のときに1つの画像を表示し、強調表示されたときに別の画像を表示するように構成できます。

于 2012-09-08T03:15:36.593 に答える
1

Xcodeで気付いた限りでは、カスタマイズされたボタンを実装することを決定し、UIControlStateSelected状態で使用する2番目の画像を指定しない場合、ユーザーがボタンをタップしてそれを表示すると、Xcodeは自動的にボタンを暗くします。実際、それらはタップされました。

于 2012-09-08T03:40:42.543 に答える
0

0x7fの答えはほぼ正しいです(正しい状態の値は「強調表示」であり、「選択済み」ではありません)。Swiftユーザーの場合は

myButton.setBackgroundImage(UIImage(named: "myButtonImagePressed.png"), forState: .Highlighted)
于 2014-11-05T04:26:57.610 に答える