在使用语法糖写UI时候,设置view部分圆角(左上,右上),很可能会显示不出来,原因你知道吗?
先上代码
self.view1 = ({
UIView * view = [[UIView alloc]init];
view.backgroundColor = [UIColor redColor];
view;
});
[self.view addSubview:self.view1];
[self.view1 mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.left.equalTo(self.view).offset(120);
make.width.mas_equalTo(200);
make.height.mas_equalTo(300);
}];
//在此处一定要加个延迟操作,不然整个view是不会显示出来的
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.view1.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(20, 20)];
CAShapeLayer *layer1 = [[CAShapeLayer alloc]init];
layer1.frame = self.view1.bounds;
layer1.path = path.CGPath;
self.view1.layer.mask = layer1;
});
总结:使用语法糖编写UI时候,1.设置圆角时候一定不能写在糖里面,因为此时view还没有设置约束,2.设置圆角时候延迟加载。
最后粘上效果图
部分圆角图
网友评论