美文网首页
cell中设置阴影不生效问题

cell中设置阴影不生效问题

作者: 丿小七 | 来源:发表于2021-07-30 12:05 被阅读0次
  1. masksToBounds属性问题

cell中设置阴影需要先设置 masksToBounds 为NO,
cell.layer.masksToBounds = NO;
cell.layer.masksToBounds = NO; 与clipsToBounds = YES;不共存,及这样设置,不能同时存在阴影跟圆角。

  1. 设置cell嵌入tableview的阴影+圆角
    分两步设置,因为同一个view上同时设置阴影跟圆角会不生效,所以用两个笨办法,现在cell上设置背景的阴影,在设置table的圆角。
    a. 重点是背景的 layer.masksToBounds = NO;
    b . 设置背景tableview 要设置clipsToBounds = YES, layer.masksToBounds = YES;
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
        self.selectionStyle = UITableViewCellSelectionStyleNone;
        self.layer.masksToBounds = NO;
        [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.mas_equalTo(UIEdgeInsetsZero);
        }];
        [self.contentView addSubview:self.bgView];
        [self.bgView addSubview:self.tableView];
        [self.bgView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.mas_equalTo(kScreen_margin_common);
            make.top.mas_equalTo(3);
            make.bottom.mas_equalTo(-3);
            make.right.mas_equalTo(-kScreen_margin_common);
        }];
        [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.mas_equalTo(0);
            make.top.mas_equalTo(0);
            make.bottom.mas_equalTo(0);
            make.right.mas_equalTo(0);
            make.height.mas_equalTo(kScreen_height);
        }];
    }
    return self;
}

- (AUView *)bgView {
    if (!_bgView) {
        _bgView = [[AUView alloc] initWithFrame:CGRectZero];
        _bgView.layer.shadowColor = kGleColor_black_a2.CGColor;
        _bgView.layer.shadowOpacity = 0.5;
        _bgView.layer.shadowOffset = CGSizeMake(0, 0);
        _bgView.layer.masksToBounds = NO;
    }
    return _bgView;
}

- (UITableView *)tableView {
    if (!_tableView) {
        _tableView = [[AUTableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
        _tableView.delegate = self;
        _tableView.dataSource = self;
        _tableView.rowHeight = UITableViewAutomaticDimension;
        _tableView.estimatedRowHeight = 119;
        _tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
        _tableView.separatorColor = kGleColor_gray_line;
        _tableView.bounces = NO;
        _tableView.scrollEnabled = NO;
        _tableView.showsVerticalScrollIndicator = NO;
        _tableView.showsHorizontalScrollIndicator = NO;
        _tableView.layer.masksToBounds = YES;
        _tableView.layer.cornerRadius = kScreen_radiu_common;
        _tableView.clipsToBounds = YES;
        if (@available(iOS 11.0, *)) {
            _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        } else {
            if (@available(iOS 13.0, *)) {
                _tableView.automaticallyAdjustsScrollIndicatorInsets = false;
            }
        }
    }
    return _tableView;
}


相关文章

网友评论

      本文标题:cell中设置阴影不生效问题

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