如何在子视图正常时获得半透明视图

时间:2012-02-22 02:45:26

标签: iphone ios5 uiviewcontroller

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

1 个答案:

答案 0 :(得分:3)

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