美文网首页
UIView同时设置圆角和投影

UIView同时设置圆角和投影

作者: 大浪捉鱼 | 来源:发表于2021-07-15 15:45 被阅读0次

    这是代码

    
    @interface ShadowCornerView ()
    @property (nonatomic, strong) UIView *contentView;// 加投影效果
    @property (nonatomic, strong) UIImageView *icon;
    @property (nonatomic, strong) UILabel *titleLabel;
    @property (nonatomic, strong) UILabel *subTitleLabel;
    @property (nonatomic, strong) UIImageView *arrow;
    @end
    
    @implementation ShadowCornerView
    
    - (instancetype)initWithFrame:(CGRect)frame {
        self = [super initWithFrame:frame];
        if (self) {
            self.contentView = [UIView new];
            [self addSubview:self.contentView];
            [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
                make.edges.mas_equalTo(0);
            }];
            
            self.icon = [UIImageView new];
            self.icon.contentMode = UIViewContentModeScaleAspectFill;
            [self.contentView addSubview:self.icon];
            [self.icon mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.mas_equalTo(35);
                make.size.mas_equalTo(CGSizeMake(50, 50));
                make.centerY.mas_equalTo(0);
            }];
            
            self.titleLabel = [UILabel new];
            self.titleLabel.font = [UIFont systemFontOfSize:16];
            [self.contentView addSubview:self.titleLabel];
            [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.mas_equalTo(self.icon.mas_right).offset(25);
                make.top.mas_equalTo(25);
                make.right.mas_equalTo(-30);
                make.height.mas_equalTo(26);
            }];
            
            self.subTitleLabel = [UILabel new];
            self.subTitleLabel.font = [UIFont systemFontOfSize:12];
            [self.contentView addSubview:self.subTitleLabel];
            [self.subTitleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
                make.left.mas_equalTo(self.icon.mas_right).offset(25);
                make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(3);
                make.right.mas_equalTo(-30);
                make.height.mas_equalTo(19);
            }];
            
            self.arrow = [UIImageView new];
            self.arrow.contentMode = UIViewContentModeScaleAspectFill;
            self.arrow.image = [UIImage imageNamed:@"icon_common_arrow_24"];
            [self.contentView addSubview:self.arrow];
            [self.arrow mas_makeConstraints:^(MASConstraintMaker *make) {
                make.right.mas_equalTo(-6);
                make.size.mas_equalTo(CGSizeMake(24, 24));
                make.centerY.mas_equalTo(0);
            }];
            
           // 解决不能同时加圆角和投影的问题,里面一层控件加圆角,外面一层控件加投影
            self.contentView.layer.cornerRadius = 15;
            self.contentView.layer.masksToBounds = YES;
            self.layer.shadowColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.04].CGColor;
            self.layer.shadowOffset = CGSizeMake(0, 2);
            self.layer.shadowOpacity = 1;
            self.layer.shadowRadius = 10.0;
            self.layer.cornerRadius = 15.0;
            self.clipsToBounds = NO;
       
        }
        return self;
    }
    
    

    相关文章

      网友评论

          本文标题:UIView同时设置圆角和投影

          本文链接:https://www.haomeiwen.com/subject/dbxmpltx.html