首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iOS7.1 UIButton中设置图像不工作?

在iOS7.1 UIButton中设置图像不工作?
EN

Stack Overflow用户
提问于 2014-03-18 13:35:54
回答 2查看 6.2K关注 0票数 4
代码语言:javascript
复制
[_firstPrincipleButton setBackgroundImage:[UIImage imageNamed:@"i_press.png"]
                                 forState:UIControlStateNormal];

上面的代码在iOS7中工作得很好,但在iOS7.1中,这不会改变UIButton的图像。我也尝试过用setImage来做这件事,但没有成功。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2014-04-02 16:07:47

以防其他人也有同样的问题,并需要另一个关于如何解决这个问题的提示:

我也有这个问题,最后我发现,如果按钮被禁用,在iOS 7.1上设置按钮的(背景)图像是不起作用的。

不知道这能不能解决你的问题,但这是我的问题。不幸的是,调用setNeedsLayout对我的情况没有帮助。作为一种解决办法,您可以覆盖UIButton,或者添加一个包含如下方法的类别来设置图像:

代码语言:javascript
复制
- (void)setImage:(UIImage *)img forButtonState:(UIControlState)state
{
    BOOL shouldEnable = self.enabled;
    self.enabled = YES;
    [self setImage:img forState:state];
    self.enabled = shouldEnable;
}

已为此问题提交错误报告(16497031)。

票数 9
EN

Stack Overflow用户

发布于 2015-09-30 22:14:49

这是iOS 7.1中一个错误,

您可以为UIButton创建一个类别,并实现一个方法来设置图像,如下所示。

代码语言:javascript
复制
-(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];
    
}

这将会起作用。

享受编码:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22471182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档