一个非常简单但又比较让人忽视的 maskToBounds 问题

2018-05-23  本文已影响0人  人话博客

maskToBounds == > 超出的范围切除.
(99.999%的情况,都是用在UIView 切圆角)
但它仅仅只是针对自己内部的子视图.
对于自己的父视图,则无能为力.

- (void)viewDidLoad {
    [super viewDidLoad];
    UIView *parentView = [[UIView alloc] init];
    parentView.backgroundColor = [UIColor orangeColor];
    parentView.frame = CGRectMake(0, 0, 300, 300);
    [self.view addSubview:parentView];
    
    UIView *childrenView = [[UIView alloc] init];
    childrenView.backgroundColor = [UIColor colorWithRed:0.80784 green:0.23529 blue:0.89020 alpha:1.00000];
    [parentView addSubview:childrenView];
    childrenView.frame = CGRectMake(20, 20, 200, 200);
    childrenView.layer.cornerRadius = 100;
    childrenView.layer.masksToBounds = YES;
}

15269043210918.jpg

为什么要理解这个以及最常用的使用场景

15269044241990.jpg

让父视图就搞阴影,然子视图去切圆角!这样父视图提供四边的阴影,子视图提供圆角。完美!

父视图(同一个视图)如果弄了阴影,又切圆角,就把阴影切掉了!

所以,同一个视图是无法完成阴影 & 圆角的操作的。必须搭配两个视图来使用。

上一篇 下一篇

猜你喜欢

热点阅读