[_firstPrincipleButton setBackgroundImage:[UIImage imageNamed:@"i_press.png"]
forState:UIControlStateNormal];上面的代码在iOS7中工作得很好,但在iOS7.1中,这不会改变UIButton的图像。我也尝试过用setImage来做这件事,但没有成功。
谢谢
发布于 2014-04-02 16:07:47
以防其他人也有同样的问题,并需要另一个关于如何解决这个问题的提示:
我也有这个问题,最后我发现,如果按钮被禁用,在iOS 7.1上设置按钮的(背景)图像是不起作用的。
不知道这能不能解决你的问题,但这是我的问题。不幸的是,调用setNeedsLayout对我的情况没有帮助。作为一种解决办法,您可以覆盖UIButton,或者添加一个包含如下方法的类别来设置图像:
- (void)setImage:(UIImage *)img forButtonState:(UIControlState)state
{
BOOL shouldEnable = self.enabled;
self.enabled = YES;
[self setImage:img forState:state];
self.enabled = shouldEnable;
}已为此问题提交错误报告(16497031)。
发布于 2015-09-30 22:14:49
这是iOS 7.1中一个错误,
您可以为UIButton创建一个类别,并实现一个方法来设置图像,如下所示。
-(void)setImage:(UIImage *)image forButtonState:(UIControlState)state
{
CGFloat version = [[UIDevice currentDevice] systemVersion].floatValue ;
if( version <= 7.1)
{
BOOL isFirstTime = YES ;
for(UIView *aView in self.subviews)
{
if([aView isKindOfClass:[UIImageView class]])
{
[(UIImageView *)aView setImage:image] ;
isFirstTime = NO ;
break ;
}
}
if(isFirstTime)
{
CGRect frame = self.frame ;
frame.size = image.size ;
UIImageView * imageView = [[UIImageView alloc] initWithFrame:frame];
[imageView setImage:image];
[self addSubview:imageView];
}
}
else
[self setImage:image forState:state];
}这将会起作用。
享受编码:)
https://stackoverflow.com/questions/22471182
复制相似问题