1st:Xcode版本4.6(4H127),模拟器6.1
所以......我做了以下事情。 我的按钮(继承自UIButton)从nib加载。然后我为UIControlStateNormal设置了它的图像。 我有这样的事情:
之后我需要取消它:
[button setImage:nil forState:UIControlStateNormal];
然后我看到了这个:
检查差异:
所以标题布局正确,但图像仍在那里......
另外,如果我这样做:
[button setImage:[UIImage new] forState:UIControlStateNormal];
我得到的结果与第二个相同,但没有图像(如预期的那样,但没有完全,没有布局):
我对这里发生的事情真的很感兴趣? 它真的很有趣,苹果公司打破了什么?或者我只是做错了什么?但我已经做了很多次(设置图像 - > nil),一切正常。
感谢您阅读:)我将不胜感激任何帮助。
答案 0 :(得分:0)
我已经写了一个关于此的示例代码。
你的两个电话都很好用
[self.myCustomButton setImage:nil forState:UIControlStateNormal];
[self.myCustomButton setImage:[UIImage new] forState:UIControlStateNormal];
我认为,您可以设置BackGroundImage
而不是image
。
样本方法
-(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属性而不是隐藏。 (我知道这很脏,但这是我发现的最快的方式)