子のviewのalphaも親のalphaに引きづられてしまい、子のviewのalphaを1.0に設定してもどちらも半透明になってしまう。
    UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100,100)];
    view.alpha = 0.5;
    [self.navigationController.view addSubview:view];
    UIView* childView = [[UIView alloc] initWithFrame:CGRectMake(25, 25, 50,50)];
    childView.backgroundColor = [UIColor whiteColor];
    childView.alpha = 1.0;
これを解決するにはviewではなく、background colorのUIColorのalphaを変える必要がある。
    UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100,100)];
    view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5];
    [self.navigationController.view addSubview:view];
    UIView* childView = [[UIView alloc] initWithFrame:CGRectMake(25, 25, 50,50)];
    childView.backgroundColor = [UIColor whiteColor];
 
0 件のコメント:
コメントを投稿