首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在使用backgroundColor时绘制部分透明的UIView

在使用backgroundColor时绘制部分透明的UIView
EN

Stack Overflow用户
提问于 2010-09-23 05:55:57
回答 2查看 787关注 0票数 5

我正在创建一个通过drawRect:呈现视图的自定义UIControl。我想使用现有的backgroundColor属性来允许通过接口生成器进行自定义。但是,如果设置了backgroundColor,则在调用drawRect:时,整个矩形已被填充。我有opaque = NO和clearsContextBeforeDrawing = YES。如果我将backgroundColor设置为clearColor,那么我可以只渲染我想要的部分。

如何防止UIView自动用backgroundColor填充整个矩形?

值得一提的是,自定义控件放在接口生成器中,因此initWithCoder:方法用于实例化对象。

这当然是可能的,因为你继承了UIButton --它使用了backgroundColor --这个矩形还没有被填充。

EN

回答 2

Stack Overflow用户

发布于 2011-06-02 11:32:00

您需要重写:

代码语言:javascript
运行
AI代码解释
复制
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx;

这是应用背景色的地方。如果希望视图处理背景颜色,请调用超级对象的drawLayer方法。

票数 2
EN

Stack Overflow用户

发布于 2011-05-30 07:19:47

由于这是一个自定义控件,您是否可以添加一个变量UIColor *myColor,并在从nib读取该变量后,在init方法中设置myColor = self.backgroundColorself.backgroundColor = [UIColor clearColor]?然后很明显在你的drawRect中使用myColor

我还没有试过这个,它看起来有点难看,但也许它有效呢?

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

https://stackoverflow.com/questions/3775759

复制
相关文章

相似问题

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