【问题标题】:UIButton background won't be transparentUIButton 背景不会是透明的
【发布时间】:2012-09-03 10:12:44
【问题描述】:

我正在尝试创建一个自定义 UIButton,但是当我将背景设置为清晰/透明时,它会用黑色填充框架的背景。我不是在 IB 中创建这些,我需要以编程方式执行此操作。我有什么遗漏吗?

UIButton* btn = [UIButton buttonWithType: UIButtonTypeCustom];
btn.frame = rect;
[btn addTarget: self action:@selector(toggleMaster) forControlEvents: UIControlEventTouchUpInside];
btn.opaque = NO;
btn.backgroundColor = [UIColor clearColor];
[btn setBackgroundImage: [UIImage imageNamed: [NSString stringWithFormat: @"%@_icon", self.currentKey]] forState: UIControlStateNormal];
[self addSubview: btn];

编辑: 我意识到我应该在 UIView 的drawRect 方法中提到我正在执行此操作。不好的做法?

【问题讨论】:

  • 我没有发现任何问题。可能您使用的图像有黑色背景。你尝试过使用不同的图片吗?
  • 我已经粘贴了你的代码。它工作正常。只需查看您是否在以下行设置了有效的 bg 图像:[btn setBackgroundImage: [UIImage imageNamed: [NSString stringWithFormat: @"%@_icon", self.currentKey]] forState: UIControlStateNormal];或者在那里给出一些硬编码的图像。
  • 这可能与在 drawRect 方法中完成的有关吗?
  • 你能粘贴你的drawrect代码吗?
  • 我只是将它切换到init方法并注释掉drawRect。我猜绘图方法不适用于按钮

标签: objective-c user-interface uibutton


【解决方案1】:

我认为你不需要设置backgroundColorUIButtonTypeCustom 默认已经是透明的了。你试过没有它吗?另外,图片是透明的吗?按钮大小一样吗?

【讨论】:

  • 我已经试过了。它继续制作黑色背景。 PNG 已经具有透明背景。它有圆角,这是黑色背景暴露的地方
猜你喜欢
  • 2012-05-26
  • 1970-01-01
  • 2011-12-15
  • 2015-11-12
  • 2011-10-24
  • 2011-09-15
  • 2016-12-02
  • 1970-01-01
相关资源
最近更新 更多