ios – 透明视图在另一个透明的UIView上有不透明的内容?

ios – 透明视图在另一个透明的UIView上有不透明的内容?,第1张

概述想法是显示进度对话框. 我试图用透明的黑色视图(alpha 0.2)覆盖父视图(通常是整个屏幕).最重要的是,我想显示一个较小的视图,也透明与另一种颜色.它可能不受第一视图的颜色或透明度的影响. 在第二个视图中,我想要不透明的UI元素. 我已经尝试了一切,甚至在这里找到了处理相似内容的帖子,但只使用了一个透明层.而那些已经使用了奇怪的技巧. 有没有一种标准的,简单的方法来实现这一目标? 没有任何黑 想法是显示进度对话框.
我试图用透明的黑色视图(Alpha 0.2)覆盖父视图(通常是整个屏幕).最重要的是,我想显示一个较小的视图,也透明与另一种颜色.它可能不受第一视图的颜色或透明度的影响.
在第二个视图中,我想要不透明的UI元素.
我已经尝试了一切,甚至在这里找到了处理相似内容的帖子,但只使用了一个透明层.而那些已经使用了奇怪的技巧.
有没有一种标准的,简单的方法来实现这一目标?解决方法 没有任何黑客攻击或复杂且可能慢的自定义drawRect:,如果您对视图进行分组,这是可能的:

创建包含并保存整个对话框的边界视图.此视图本身没有可见内容,其backgroundcolor很清晰.它的Alpha是1.0.

现在将所有透明视图(具有Alpha< 1的视图)添加到您想要的视图中,并添加非透明视图.注意不要将任何非透明视图添加为透明视图的子视图,而是将它们添加为边界视图的直接子视图.这样,他们将继承其1.0的Alpha值.

UIVIEw *progressDialogVIEw = [[UIVIEw alloc] initWithFrame:dialogFrame];progressDialogVIEw.backgroundcolor = [UIcolor clearcolor];progressDialogVIEw.Alpha = 1.0; //you can leave this line out,since this is the default.UIVIEw *halftransparentBackgroundVIEw = [[UIVIEw alloc] initWithFrame:dialogFrame];halftransparentBackgroundVIEw.backgroundcolor = [UIcolor blackcolor]; //or whatever...halftransparentBackgroundVIEw.Alpha = 0.5;[progressDialogVIEw addSubvIEw: halftransparentBackgroundVIEw];UIVIEw *progressbarVIEw = [[UIVIEw alloc] initWithFrame:progressbarFrame];progressbarVIEw.backgroundcolor = [UIcolor bluecolor];[progressDialogVIEw addSubvIEw: progressbarVIEw];
总结

以上是内存溢出为你收集整理的ios – 透明视图在另一个透明的UIView上有不透明的内容?全部内容,希望文章能够帮你解决ios – 透明视图在另一个透明的UIView上有不透明的内容?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1098539.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存