UITableViewCell的阴影问题

时间:2016-08-29 06:38:10

标签: ios objective-c uitableview

我有一个自定义seq = [1, 2, 3, 4] for k in 1, 2, 3, 4: for groups in sorted_k_partitions(seq, k): print(k, groups) ,我在其1 [(1, 2, 3, 4)] 2 [(1,), (2, 3, 4)] 2 [(2,), (1, 3, 4)] 2 [(3,), (1, 2, 4)] 2 [(4,), (1, 2, 3)] 2 [(1, 2), (3, 4)] 2 [(1, 3), (2, 4)] 2 [(1, 4), (2, 3)] 3 [(1,), (2,), (3, 4)] 3 [(1,), (3,), (2, 4)] 3 [(1,), (4,), (2, 3)] 3 [(2,), (3,), (1, 4)] 3 [(2,), (4,), (1, 3)] 3 [(3,), (4,), (1, 2)] 4 [(1,), (2,), (3,), (4,)] 方法中写了这样的影子代码:

UITableViewCell

但是当我运行它时,而不是在边缘上有阴影,该单元格上的所有layoutSubviews都会产生阴影,就像下面的屏幕截图一样,这不是我所期待的。

enter image description here

我尝试了-(void)layoutSubviews { [super layoutSubviews]; self.layer.shadowColor = [UIColor blackColor].CGColor; self.layer.shadowOffset = CGSizeMake(0, 4.0); self.layer.shadowRadius = 4.0; self.layer.shadowOpacity = 1.0; } 但是根本没有任何阴影。

那么我该怎样做才能像往常一样将阴影放在单元格的底部边缘?我不想暗示子视图。

更新:

我直接使用subviews在我的单元格中添加了所有子视图,因此它们不在单元格的self.contentView.layer上。

2 个答案:

答案 0 :(得分:1)

尝试这个

而不是在layoutsubView中设置阴影,而不是在cellForRowAtIndexPath

中设置它
cell.layer.shadowColor = [UIColor blackColor].CGColor;
cell.layer.shadowOffset = CGSizeMake(0, 4.0);
cell.layer.shadowRadius = 4.0;
cell.layer.shadowOpacity = 1.0;

答案 1 :(得分:1)

请尝试以下代码:

#import <QuartzCore/QuartzCore.h>

在cellForRowAtIndexPath

中添加以下代码
{
    tblCustomCell.layer.shadowColor = [[UIColor darkGrayColor] CGColor];
    tblCustomCell.layer.shadowOffset = CGSizeMake(1.0f, 1.0f);
    tblCustomCell.layer.shadowRadius = 3.0f;
    tblCustomCell.layer.shadowOpacity = 1.0f;
}