2012-02-22 81 views
3

我有一个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]; 
} 

回答

3

你不能那样做。你需要以另一种方式安排你的观点来获得你想要的效果。尝试添加另一个UIView到主视图,并将其透明度设置为50%。这样,您的其他物品可以停留在主视图上,不会受到影响。

+0

谢谢。我创建了一个单独的覆盖视图,并按预期工作。 – 2012-02-22 03:35:07