如何获得半透明视图,而子视图正常
问题描述:
我有一个UIViewController派生类,我想要做的是有一个子视图不透明,而其父视图(主UIViewController.view)有50 % 透明度。如何获得半透明视图,而子视图正常
在控制器类的viewDidLoad上,我设置了视图和子视图的alpha值。但是,我所看到的是基本视图和子视图都是半透明的。有没有办法避免这种情况发生?
// Class declaration
@interface MyViewControllerClass : UIViewController
{ }
@property (nonatomic, strong) IBOutlet UIView *contentView;
@end
// Class implementation
- (void)viewDidLoad
{
// I want the main view to be a transparent overlay
[self.view setBackgroundColor:[UIColor lightGrayColor]];
[self.view setAlpha:0.5];
// This is the subview I want to look normal
[self.contentView setAlpha:1.0];
[self.contentView setOpaque:NO];
[super viewDidLoad];
}
答
你不能那样做。你需要以另一种方式安排你的观点来获得你想要的效果。尝试添加另一个UIView到主视图,并将其透明度设置为50%。这样,您的其他物品可以停留在主视图上,不会受到影响。
谢谢。我创建了一个单独的覆盖视图,并按预期工作。 – 2012-02-22 03:35:07