【问题标题】:Inner shadow on UITableView layer?UITableView 层的内部阴影?
【发布时间】:2012-09-26 13:10:39
【问题描述】:

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

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

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

我的 UITableView 以 UIViewController 的视图为中心,背景为深灰色。给 UITableView 一个内部阴影将使背景成为表格视图的边框。

如何才能最好地在 UITableView 上实现我想要的效果?

【问题讨论】:

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


    【解决方案1】:

    回答我自己的问题:

    我最终继承了一个 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];
    }
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 认为我知道你想做什么。如果我的理解是正确的,您可以将灰色框架设置为 UITableView 顶部的静态图像叠加层并编辑其图像,使其在顶部边缘下方包含一个半透明阴影。它不必是整页图片,您可以使用可拉伸的图片,如下所述:idevrecipes.com/2010/12/08/stretchable-images-and-buttons
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 2012-11-03
      • 2011-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多