1

我有一个只有几行的表格视图。因此,我没有显示一堆空白,而是在 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 添加到页脚但不创建阴影。我不确定该层是最好的方法,甚至对这种类型的事情是否正确。

4

3 回答 3

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

于 2012-02-14T22:47:11.610 回答
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);
于 2014-10-26T04:06:21.177 回答
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];
于 2012-10-24T18:35:16.203 回答