这个想法是显示一个进度对话框。 我试图用一个透明的黑色视图(alpha 0.2)来覆盖父视图(通常是整个屏幕)。最重要的是,我想展示一个更小的视图,同时透明与另一种颜色。它可能不受第一视图的颜色或透明度的影响。 在第二个视图中我想要不透明的UI元素。 我已经尝试了一切,甚至发现这里处理类似的东西,但只使用一个透明层的帖子。而那些已经使用奇怪的技巧。 有没有一个标准的,简单的方法来实现这一目标?具有非透明内容的另一个透明UIView的透明视图?
6
A
回答
3
我找到了答案在博客:http://cocoawithlove.com/2009/04/showing-message-over-iphone-keyboard.html
的解决方案是重写drawRect:
和照顾α的吧。您可能无法触摸UIView's
alpha属性,也不能将视图的背景颜色设置为透明。所有图纸都必须在drawRect:.
中这样我就可以堆叠透明视图并将不透明元素放在顶部。
1
将您的不透明视图添加为透明视图的子视图将不起作用。我过去所做的是有一个UIView
类,它添加了一个半透明的子视图和一个不透明的子视图。这样透明视图不会影响不透明的视图。
9
没有任何黑客周围或复杂的,可能缓慢定制drawRect:
,这是可能的,如果你组的意见吧:
创建包含并保持整个对话的边界视图。该视图本身没有可见的内容,并且其背景颜色清晰。它的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];
5
而不是设置alpha属性,使用下面的设置背景颜色/不透明度为每个视图:
view1.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:.3];
使用任何值,你的愿望的红,绿,蓝和alpha。
2
我需要在另一个视图顶部有透明视图。视图,使透明我只是做:
self.alpha = 0.5;
例如:
- (void) configureView
{
self.frame = CGRectMake(0, 0, 640, 960);
self.backgroundColor = [UIColor greyColor];
self.alpha = 0.5;
}
相关问题
- 1. 透明div内的非透明div
- 2. 通过不透明父项透明内部div非透明
- 3. iPhone SDK:透明视图中的非透明子视图
- 4. 透明滚动视图上的非透明按钮有问题
- 5. 在视图中具有非透明文本的透明背景图像
- 6. 使UIView透明
- 7. 透明父母的非透明子女
- 8. 透明视图?
- 9. Java:具有非透明组件的透明Windows?
- 10. 将透明图像复制到另一个透明图像
- 11. 在另一个透明图像上移动透明图像
- 12. 在透明窗口上绘制非透明内容
- 13. OpenGL的透明/半透明
- 14. WPF透明度和透明和非透明
- 15. 非透明图像
- 16. 如何使用非透明边框创建透明UIView
- 17. 我如何将不透明UIView作为半透明UIView的子视图?
- 18. Android的透明图片不是透明
- 19. Matplotlib:绘制具有不透明边缘的透明直方图
- 20. iOS如何使透明视图的子视图不透明?
- 21. UITapGestureRecognizer透明视图
- 22. 透明图像搞乱透明图像
- 23. 透明背景透明图像问题
- 24. 图形不会透明透明JPanel
- 25. 使KML/KMZ图层透明/不透明
- 26. 如何在透明窗口中绘制透明的DirectX内容?
- 27. iphone:使视图透明,但子视图不透明
- 28. UIView和子视图 - 不透明度
- 29. 透明部分的视图?
- 30. 创建一个透明的UIview
我知道, “绝招”。但是,如果你想在一个更透明的视图上放置一个半透明的视图,并且它上面的按钮都是不透明的,那么它就变得困难起来。所以我很满意我在自己的答案中引用的博客中找到的代码。它根本不使用Alpha值。 – Krumelur 2012-01-17 16:11:41
它如何变得复杂?我认为这种方式非常整洁,易于掌握。 – fzwo 2012-01-17 16:45:38
复杂化的方式是,您始终需要两个视图,只有一个透明且非透明的内容在顶部。这就是为什么我更喜欢其他解决方案。 – Krumelur 2012-01-18 08:59:09