gpt4 book ai didi

ios - 另一个具有非透明内容的透明 UIView 上的透明 View ?

转载 作者:可可西里 更新时间:2023-11-01 03:36:36 27 4
gpt4 key购买 nike

这个想法是显示一个进度对话框。我试图用透明的黑色 View (alpha 0.2) 覆盖父 View (通常是整个屏幕)。最重要的是,我想展示一个较小的 View ,也可以用另一种颜色透明。它可能不受第一个 View 的颜色或透明度的影响。在第二个 View 中,我想要不透明的 UI 元素。我已经尝试了一切,甚至在这里找到了处理类似但只使用一个透明层的帖子。那些已经使用了奇怪的技巧。是否有一种标准的、简单的方法可以实现这一点?

最佳答案

没有任何绕过或复杂且可能很慢的自定义 drawRect:,如果您对 View 进行分组,这是可能的:

创建一个包围并容纳整个对话框的边界 View 。这个 View 本身没有可见的内容,它的 backgroundColor 是清晰的。它的 alpha 是 1.0。

现在将所有透明 View (alpha < 1 的那些)添加到您想要的,并添加非透明 View 。注意不要将任何非透明 View 添加为透明 View 的 subview ,而是将它们添加为边界 View 的直接 subview 。这样,他们将继承其 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 上的透明 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8882402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com