cell四周圆角,阴影为了能明显设置了蓝色(项目主色调是蓝色)。
在自定义cell.m中实现
- (UIView *)bgView{
if (!_bgView) {
_bgView = [[UIView alloc] init];
_bgView.layer.cornerRadius = 8.0f;
_bgView.layer.masksToBounds = YES;
}
return _bgView;
}
在系统的setFrame方法中设置backgroudView的frame
- (void)setFrame:(CGRect)frame{
frame.origin.x = margin;
frame.size.height -= 2*margin;
frame.size.width -= 2*margin;
[super setFrame:frame];
self.backgroundView.frame = self.bounds;
}
在cell的初始化方法里,将backgroudView设置为cell的backgroundView
并且设置了cell的阴影
self.backgroundView = self.bgView;
self.layer.shadowOffset = CGSizeMake(margin, margin);
self.layer.shadowOpacity = 0.5f;
self.layer.shadowColor = KMAINCOLOR.CGColor;
在tableView的代理方法中,实现以下方法:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
cell.backgroundColor = [UIColor clearColor];
YPHomePageCell *myCell = (YPHomePageCell *)cell;
myCell.backgroundView.backgroundColor = [UIColor whiteColor];
}
具体使用方法如下图:注意:因为阴影部分是占Cell高度的(如果不设置阴影下_tableView.rowHeight = 100.f,那么设置阴影后要将_tableView.rowHeight = 100.f+2*margin),也就是说设置阴影后,阴影部分高度加cell高度等于rowHeight