UITableView图层上的内部阴影?

时间:2012-09-26 13:10:39

标签: objective-c ios cocoa-touch uitableview shadow

我需要为我的UITableView添加内部阴影效果。我发现了一个关于向UIView层添加内部阴影的有用帖子:Inner shadow effect on UIView layer?

当我尝试在UITableView上使用这种技术时会出现问题,因为UITableView的单元格显示在顶部,覆盖阴影。

我已经将UITableView作为子视图添加到UIView(带有内部阴影),但没有效果。

我的UITableView以UIViewController的视图为中心,背景为深灰色。给UITableView一个内部阴影会给背景带来作为表视图边框的效果。What I currently have WITHOUT the inner shadow

我如何在UITableView上最好地实现我正在寻找的效果?

2 个答案:

答案 0 :(得分:2)

回答我自己的问题:

我最后使用这篇文章继承了UIView并实现了drawRect函数:Inner shadow effect on UIView layer?

然后通过实现以下方法指示新的UIView子类将所有触摸事件转发到底层视图控制器:

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
    return NO;
}

最后,我将新视图作为子视图添加到我的主视图中,将其背景设置为透明,将其放在tableView的顶部并将其放在前面。

- (void)viewDidLoad {
    InnerShadowView *shadowView = [[InnerShadowView alloc] init];
    [self.view addSubview:shadowView];
    shadowView.frame = _tableView.frame;
    shadowView.backgroundColor = [UIColor clearColor];
    [self.view bringSubviewToFront:shadowView];
}

答案 1 :(得分:0)

我相信这篇文章涵盖了您正在寻找的内容:

http://cocoawithlove.com/2009/08/adding-shadow-effects-to-uitableview.html