iOS在点击时显示不同的图像

时间:2012-09-08 03:01:27

标签: objective-c uibutton ibaction

使用XCode,我试图找出当有人点击或按下我的一个按钮然后被带到第二个屏幕时如何显示不同的图像。例如,我的主屏幕上有一个联系人图标。当用户单击该图标时,它应该在转到联系人屏幕之前更改为更暗的版本。任何帮助表示赞赏。

-(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;
}
}

3 个答案:

答案 0 :(得分:3)

简单,您只需为所选按钮设置不同的图像状态:

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

或在界面构建器中:

enter image description here

其他UIControlState's包括:

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

控制的状态;一个控件可以有一个以上的状态   时间。取决于控制,各国的识别方式不同。对于   例如,可以配置UIButton实例(使用   setImage:forState:method)显示一个图像   正常状态和突出显示时的不同图像。

答案 1 :(得分:1)

就我在Xcode中注意到的那样,每当你决定实现一个自定义按钮并且没有指定第二个图像用于UIControlStateSelected状态时,当用户点击按钮时,Xcode会自动为你按下该按钮事实上,这表明他们是被挖掘出来的。

答案 2 :(得分:0)

0x7f答案几乎是正确的(正确的状态值是&#39;突出显示&#39;而不是&#39;选择&#39;)。对于Swift用户,它将是

myButton.setBackgroundImage(UIImage(named: "myButtonImagePressed.png"), forState: .Highlighted)