iOS:表格单元格页脚阴影

时间:2012-02-14 22:11:04

标签: objective-c uitableview ios5 dropshadow

我的桌面视图只有几行。因此,我没有显示一堆空白,而是向tableview.footer添加了一个空白的UIView。但是我希望最后一个单元格在UIView上投下阴影。我怎么做到这一点?这是我目前的代码。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIView *emptyView = [[UIView alloc] initWithFrame:CGRectZero];
    CALayer *layer = [emptyView layer];
    [layer setShadowOffset:CGSizeMake(0, 1)];
    [layer setShadowColor:[[UIColor darkGrayColor] CGColor]];
    [layer setShadowRadius:8.0];
    [layer setShadowOpacity:0.8];
    self.tableView.tableFooterView = emptyView;
}

编辑: 它将UIView添加到页脚但不创建drophadow。我不确定这个层是最好的方法,甚至不能纠正这类事情。

3 个答案:

答案 0 :(得分:0)

可能是因为您将框架设置为CGRectZero。

零矩形相当于CGRectMake(0,0,0,0)。

零矩形(x = 0,y = 0,宽度= 0,高度= 0)的阴影根本不会显示。

尝试给它一个合适的框架尺寸,你会看到差异。

请查看以下参考资料:https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CGGeometry/Reference/reference.html

答案 1 :(得分:0)

我最终使用

shadowBackgroundView.layer.shadowOpacity = 0.3; 
shadowBackgroundView.layer.shadowRadius = 2;
shadowBackgroundView.layer.shadowColor = [[UIColor blackColor] CGColor];
shadowBackgroundView.layer.shadowOffset = CGSizeMake(0.0, 1.0);
CGPathRef shadowPath = [UIBezierPath bezierPathWithRoundedRect: shadowBackgroundView.bounds 
                                                         byRoundingCorners: UIRectCornerAllCorners
                                                               cornerRadii: CGSizeMake(PageCellBackgroundRadius, PageCellBackgroundRadius)].CGPath;
shadowBackgroundView.layer.shadowPath = shadowPath;
shadowBackgroundView.layer.shouldRasterize = YES;

[self addSubview: shadowBackgroundView];

答案 2 :(得分:0)

cellForRowAtIndexPath:函数中:

// drop shadow
cell.layer.shadowOpacity = 1.0;
cell.layer.shadowRadius = 1.7;
cell.layer.shadowColor = [UIColor blackColor].CGColor;
cell.layer.shadowOffset = CGSizeMake(0.0, 0.0);