2012-02-22 61 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