【问题标题】:UIButton Bug? (Xcode Version 4.6 (4H127))UIButton 错误? (Xcode 版本 4.6 (4H127))
【发布时间】:2013-03-02 11:02:10
【问题描述】:

第一个:Xcode 版本 4.6 (4H127),模拟器 6.1

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

之后我需要取消它:

[button setImage:nil forState:UIControlStateNormal];

然后我看到这个:

检查差异:

所以标题布局正确,但图像仍然存在......

另外,如果我执行以下操作:

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

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

我真的对这里发生的事情很感兴趣? 它真的很有趣,mb Apple 打破了一些东西?或者我只是做错了?但是我已经做了很多次(设置图像->无),一切正常。

感谢您的阅读 :) 我将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    我已经为此编写了一个示例代码。

    你的两个电话我都很好

     [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]; 
    }
    

    【讨论】:

    • 感谢 Ramshad 的回复,但我写的正是我正在做的事情。如果我设置了 backgroundImage,我的 backgroundImage 应该延伸到我的按钮的边界。但是我调用了 setImage,所以它没有发生。我手动重新创建了按钮,但我强烈得到这个错误。希望能找到解决办法。
    【解决方案2】:

    这个东西在这里: 我的 UIButton 子类覆盖 -layoutSubviews,其中使用某些标准设置 imageView.hidden。 所以,如果 hidden 属性是 YES,当我调用 setImage:forState 时 - 这个 bug 就发生了。

    接下来是我的修复: 我刚开始使用 alpha 属性而不是隐藏。 (我知道这很脏,但这是我找到的最快的方法)

    【讨论】:

      猜你喜欢
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多