繁体   English   中英

UIButton - 触摸变化图像

[英]UIButton - On touch change image

当我在那时触摸按钮时,我想要更改图像,当我释放触摸按钮时,图像就是这样。

我想申请下面的代码,但这不符合我的期望。

请给我任何建议.....

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

您可以使用UIControlStateHighlighted。

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

您还可以通过将图像设置为突出显示状态,从界面构建器中进行设置。

我认为应该这样做。 创建按钮后设置图像

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

在Swift中:

button.setImage(UIImage(named: "enter.png"), forState: [.Selected, .Highlighted])

我想,您可以在正常和选定状态的开头设置图像。

在创建UIButton对象时尝试使用以下内容。 [根据您的要求使用图像]

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

@ 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];

如果您只是打开或关闭按钮,则无需将其设为属性,因为buttonPressed发件人知道按下了哪个按钮。 我需要将它们作为属性,因为我需要告诉相反的按钮将其高亮显示关闭。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM