【问题标题】:BackgroundImage of UIButton sometimes did not change with touchUpInside eventUIButton 的 BackgroundImage 有时不会随着 touchUpInside 事件而改变
【发布时间】:2012-09-18 23:59:51
【问题描述】:

UIButton 设置如下代码:

UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 27, 27)];
[btn setBackgroundImage:[UIImage imageNamed:@"imgUp.png"] forState:UIControlStateNormal];
[btn setBackgroundImage:[UIImage imageNamed:@"imgDown.png"] forState:UIControlStateHighlighted];
[btn addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];

如果我快速触摸btwimgDown.png 将不会出现,但会触发动作btnPressed:。怎么可能修好?任何帮助表示赞赏:)

【问题讨论】:

  • 访问这个问题可能对你有用stackoverflow.com/questions/1072698/…
  • 你试过用forState:UIControlStateSelected 代替高亮显示吗?
  • 试试这个 [btn setBackgroundImage:[UIImage imageNamed:@"imgDown.png"] forState:UIControlStateSelected];
  • @Mat 是的,我尝试过 UIControlStateSelected,但不起作用

标签: iphone ios uibutton touch-up-inside


【解决方案1】:

它工作正常,我会对其进行测试,请检查您的图像并尝试一下:

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 27, 27)];
[button setBackgroundImage:[UIImage imageNamed:@"rainy.jpg"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"Icon.png"] forState:UIControlStateHighlighted];
[button addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view button];

【讨论】:

  • 如果 btnPressed: 什么也没做,它可能会正常工作。在我的代码中,它将模态一个视图控制器。一种解决方案是我自己发布的。
【解决方案2】:

下面的代码可以解决问题。

-(void)btnPressedDelay{

    //original code in btnPressed: method
}

- (void) btnPressed:(id)sender
{    

    [self performSelector:@selector(btnPressedDelay) withObject:nil afterDelay:0];
// 0 did the magic here

}

【讨论】:

    【解决方案3】:

    在您的代码中添加这一行:

    [btn setBackgroundImage:[UIImage imageNamed:@"imgDown.png"] forState:UIControlStateSelected];
    

    【讨论】:

      【解决方案4】:

      您应该为 btnPressed: 函数中的按钮 (btn) 调用 setHiglighted: 方法。

      【讨论】:

        猜你喜欢
        • 2019-12-04
        • 2013-12-24
        • 1970-01-01
        • 2017-12-03
        • 2014-06-25
        • 2022-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多