Ios UIButton-触摸式更改图像

Ios UIButton-触摸式更改图像,ios,objective-c,iphone,uibutton,uicontrolstate,Ios,Objective C,Iphone,Uibutton,Uicontrolstate,当我当时触摸按钮时,我想改变图像&当我松开触摸按钮时,图像保持原样 我想应用下面的代码,但这不是我的期望 请给我任何建议 -(IBAction)actionEnter:(id)sender{ if ([sender isSelected]) { [sender setImage:[UIImage imageNamed:@"enter-hover.png"] forState:UICon

当我当时触摸按钮时,我想改变图像&当我松开触摸按钮时,图像保持原样

我想应用下面的代码,但这不是我的期望

请给我任何建议

   -(IBAction)actionEnter:(id)sender{
            if ([sender isSelected]) {
                [sender setImage:[UIImage imageNamed:@"enter-hover.png"] 
                        forState:UIControlStateNormal];
                [sender setSelected:NO];
            } else {
                [sender setImage:[UIImage imageNamed:@"enter.png"] 
                        forState:UIControlStateSelected];
                [sender setSelected:YES];
            }

您可以为此使用uicontrol状态高亮显示

[myButton setImage:[UIImage imageNamed:@"enter-hover.png"] forState:UIControlStateHighlighted]; [myButton setImage:[UIImage ImageName:@“输入hover.png”] forState:uicontrol状态突出显示];
您还可以通过将图像设置为高亮显示状态,从interface builder中进行设置。

我认为,您可以在开始时将图像设置为正常和选定状态

当您创建
ui按钮
对象时,请尝试以下操作[根据您的要求使用图像]

[myButton setImage:[UIImage imageNamed:@"enter.png"] 
          forState:UIControlStateNormal];
[myButton setImage:[UIImage imageNamed:@"enter-hover.png"] 
          forState:UIControlStateSelected];

我想这应该可以。创建按钮后设置图像

[yourButton setImage:[UIImage imageNamed:@"enter-hover.png"] 
            forState:UIControlStateSelected];
[yourButton setImage:[UIImage imageNamed:@"enter.png"]  
            forState:UIControlStateNormal];
这样做

- (IBAction)actionEnter:(id)sender{
    UIButton *button = (UIButton *)sender;
    button.selected = !button.selected;
}

要立即更改图像,请使用backgroundImage属性。

@7KV7让我思考。我有收藏和忽略按钮,我想用它们来标记收藏的图片和我再也不想看到的图片。我使用他的方法初始化按钮,然后稍微修改他的方法来打开和关闭按钮

在本例中,如果将图片标记为收藏夹,则需要关闭“忽略”按钮,反之亦然。委托处理数据库的内容

 self.favoriteButton = [UIButton buttonWithType:UIButtonTypeCustom];
        self.ignoreButton   = [UIButton buttonWithType:UIButtonTypeCustom];

        [self.favoriteButton setImage:[UIImage imageNamed:@"Favorite-Selected"] 
                             forState:UIControlStateSelected];
        [self.favoriteButton setImage:[UIImage imageNamed:@"Favorite"] 
                             forState:UIControlStateNormal];

        [self.ignoreButton setImage:[UIImage imageNamed:@"Ignore-Selected"] 
                           forState:UIControlStateSelected];
        [self.ignoreButton setImage:[UIImage imageNamed:@"Ignore"] 
                           forState:UIControlStateNormal];
如果只是打开或关闭按钮,则不需要将其设置为属性,因为按下按钮的发送者知道按下了哪个按钮。我需要让它们成为属性,因为我需要告诉对面的按钮关闭高亮显示

- (void)favoriteIgnore:(UIButton *)buttonPressed {

     // Toggle the tapped button
     buttonPressed.selected = ( buttonPressed.selected) ?  NO : YES;

    id <ScoringToolbarDelegate> TB_delegate = _delegate;

    // Turn off the other button and call the delegate
    if ([buttonPressed.currentTitle isEqualToString:@"favorite"]) {

        self.ignoreButton.selected = NO;
        [TB_delegate favoriteButtonPressed];

    } else {

        self.favoriteButton.selected = NO;
        [TB_delegate ignoreButtonPressed];
    }
}
-(无效)收藏夹忽略:(UIButton*)按钮按下{
//切换点击的按钮
buttonPressed.selected=(buttonPressed.selected)?否:是;
id TB_delegate=_delegate;
//关闭另一个按钮并呼叫代表
如果([buttonPressed.currentTitle isEqualToString:@“favorite”]){
self.ignoreButton.selected=否;
[TB_代表收藏夹按钮按下];
}否则{
self.favoriteButton.selected=否;
[TB_代表忽略按钮按下];
}
}
在Swift中:

button.setImage(UIImage(名为:“enter.png”),for状态:[.Selected,.Highlighted])