在iOS中绘制半透明矩形

瓦西尔·加洛夫(Vasil Garov)

我一直在寻找答案,并且尝试自己解决这个问题,但是我没有,我认为这是最好的答案。所以我试图完成一些简单的事情,但是我找不到解决方法。我认为我在概念上缺少一些东西。这是我尝试在子类化UIView的类中创建半透明矩形的方法:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    //this should be white color with 0.7 opacity right
    CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 0.7);
    CGContextFillRect(context, self.bounds);
}

好的,这只会使颜色变成灰色。我也尝试过此方法,但结果相同:CGContextSetRGBFillColor(context,1.0,1.0,1.0,1.0);
CGContextSetAlpha(context,0.7);

另一种尝试:

- (void)drawRect:(CGRect)rect
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0);
    CGContextFillRect(context, self.bounds);

    self.alpha = 0.7;
}

瞧!我解决了 但不完全是。我想在上下文中绘制一个半透明的矩形,而不是使整个视图透明。然后例如添加另一个完全不透明的矩形。很想听听您的想法。谢谢。

塞尔吉奥

我想您看不到矩形透明度的原因是视图中存在背景色。

您是否可以尝试像这样设置视图背景颜色:

self.backgroundColor = [UIColor clearColor];

顺便说一句,此语句以及设置您的自定义视图属性(例如self.alpha = 0.7;)的任何语句都应加入该init方法。

编辑:

正如@borrrden指出的那样,要设置技巧的真正属性可能是opaqueYES根据Apple Docs通常将其设置为以下含义

不透明视图应使用完全不透明的内容填充其边界,也就是说,该内容的Alpha值应为1.0。如果视图是不透明的,或者不填充其边界或包含全部或部分透明的内容,则结果是不可预测的。如果视图是完全或部分透明的,则应始终将此属性的值设置为NO。

将背景色设置为clearColor可能会将此属性的值设置NO为附带效果。

编辑:

我不明白您为什么要覆盖drawRect一个UIView半透明矩形来绘制半透明矩形,这也许是因为我不知道您要做什么。无论如何,您可能想研究的另一种方法是使用nestedUIViews或nested CALayers,您可以在其中分配不同的alpha/ opacity

如果您只是对不透明程度不同的矩形感兴趣,那么这就像UIViews在父视图中嵌套并为它们分配半透明的背景色一样简单。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在iOS中绘制半透明矩形

来自分类Dev

在透明窗口中绘制一个半透明矩形

来自分类Dev

如何在画布上绘制多个半透明矩形?

来自分类Dev

UIToolbar在iOS 7中不是半透明的

来自分类Dev

iOS中的半透明导航栏模糊

来自分类Dev

如何在pygame中绘制透明矩形

来自分类Dev

在Qt中绘制半透明颜色时避免颜色量化

来自分类Dev

在画布中,如何绘制2个半透明的重叠圆

来自分类Dev

在画布中,如何绘制2个半透明的重叠圆

来自分类Dev

使我的iOS 7应用中的键盘半透明/透明

来自分类Dev

如何绘制半透明的NSTableRowView?

来自分类Dev

如何绘制半透明的NSTableRowView?

来自分类Dev

RStudio中的半透明

来自分类Dev

RStudio中的半透明

来自分类Dev

酒吧半透明性在iOS 7.0.3中消失了

来自分类Dev

如何在iOS中呈现半透明(半切)的ViewController?

来自分类Dev

如何在其中包含一些用户控件的面板上绘制一个半透明的矩形?

来自分类Dev

在opencv中绘制矩形时增加透明度

来自分类Dev

在图像矩阵Python OpenCV中检测半透明黑色矩形区域的位置

来自分类Dev

libgdx在pixmap上绘制半透明圆

来自分类Dev

在HTML5画布中的鼠标移动上绘制半透明线

来自分类Dev

如何在ImageDraw中绘制许多具有良好时间性能的半透明图形?

来自分类Dev

在OpenGL中绘制到半透明帧缓冲区时如何抗锯齿?

来自分类Dev

iOS 7 TabBar半透明问题

来自分类Dev

如何使UIPopoverPresentationController对于iOS 9半透明

来自分类Dev

在Jpanel中绘制矩形

来自分类Dev

在Golang中绘制矩形?

来自分类Dev

UIPageControl中的pageIndicatorTintColor在iOS7中保持半透明白色

来自分类Dev

UIPageControl中的pageIndicatorTintColor在iOS7中保持半透明白色

Related 相关文章

热门标签

归档