UIButton Bug? (Xcode版本4.6(4H127))

时间:2013-03-14 07:27:47

标签: iphone cocoa-touch uibutton xcode4.2 ios6

1st:Xcode版本4.6(4H127),模拟器6.1

所以......我做了以下事情。 我的按钮(继承自UIButton)从nib加载。然后我为UIControlStateNormal设置了它的图像。 我有这样的事情: button

之后我需要取消它:

[button setImage:nil forState:UIControlStateNormal];

然后我看到了这个: wrong_button

检查差异:

button

wrong_button

所以标题布局正确,但图像仍在那里......

另外,如果我这样做:

[button setImage:[UIImage new] forState:UIControlStateNormal];

我得到的结果与第二个相同,但没有图像(如预期的那样,但没有完全,没有布局):

new_image

我对这里发生的事情真的很感兴趣? 它真的很有趣,苹果公司打破了什么?或者我只是做错了什么?但我已经做了很多次(设置图像 - > nil),一切正常。

感谢您阅读:)我将不胜感激任何帮助。

2 个答案:

答案 0 :(得分:0)

我已经写了一个关于此的示例代码。

你的两个电话都很好用

 [self.myCustomButton setImage:nil forState:UIControlStateNormal];
 [self.myCustomButton setImage:[UIImage new] forState:UIControlStateNormal];

我认为,您可以设置BackGroundImage而不是image

enter image description here

样本方法

-(IBAction)removeImage:(id)sender{

    [self.myCustomButton setImage:nil forState:UIControlStateNormal];
    //[self.myCustomButton setImage:[UIImage new] forState:UIControlStateNormal];
}

-(IBAction)setImage:(id)sender{

    [self.myCustomButton setImage:[UIImage imageNamed:@"Button_Disable.jpg"] forState:UIControlStateNormal]; 
}

答案 1 :(得分:0)

这件事在这里: 我的UIButton的子类重写-layoutSubviews,其中使用某些条件设置imageView.hidden。 所以,如果隐藏属性为YES,当我调用setImage:forState时 - 发生了这个错误。

我的修复是下一个: 我只是开始使用alpha属性而不是隐藏。 (我知道这很脏,但这是我发现的最快的方式)