好的iOS表视图阴影(像时钟应用程序)

时间:2011-07-28 23:48:56

标签: iphone ios uitableview shadow

我对iOS编码很陌生,我似乎无法找到一个好的教程版本,告诉我如何有效地为表视图添加阴影。

我试过(然后是其他一些随机的): http://cocoawithlove.com/2009/08/adding-shadow-effects-to-uitableview.html 根本不适合我,给了我错误。

http://www.iphonedevsdk.com/forum/iphone-sdk-development/5939-safari-like-uiwebview-uiscrollview-uitableview-beyond-bounds-gradient.html 尝试了一款功能完美但在iPhone上速度非常慢的核心显卡。这不是很快乐。我也试过图像,但看起来很糟糕。

是否有一个像默认时钟应用程序一样快速的好版本?必须有一些“标准”。

4 个答案:

答案 0 :(得分:0)

没有真正的标准,但CAGradientLayer在大多数情况下都是正确的方法。你遇到了什么错误?

答案 1 :(得分:0)

Matt Drance和Paul Warren撰写的iOS Recipes一书中的食谱20,“为表格视图添加边框阴影”中介绍了这一点。该配方将阴影图像视图添加到UITableView子类中,并在layoutSubviews中根据需要重新定位。

我还使用阴影图像视图作为表格页眉和页脚属性来完成此操作,但这有一个明显的缺点,即阻止您将其他视图添加为页眉和页脚视图。

答案 2 :(得分:0)

如果您不在表格视图中使用表格页眉和页脚,这是一个非常简单的解决方案:

  1. 添加两个渐变视图(UIView的图像或子类以及一些渐变绘图)作为tableHeaderView和tableFooterView。可以在Interface Builder中完成。
  2. 设置top&表格视图的内容插入底部到渐变视图的负高度。
  3. 您可以在此处找到此解决方案的代码示例:http://rowboatrevolution.com/2009/06/drop-shadows-in-uitableview/

答案 3 :(得分:0)

我只能通过一个小技巧在桌面视图上获得内部阴影。

我将1px X 320px UIView放在表格视图的顶部,然后在这个视图周围加上一个阴影:

self.shadowWrapper.layer.shadowColor = [[UIColor blackColor] CGColor];
self.shadowWrapper.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
self.shadowWrapper.layer.shadowOpacity = .90f;
self.shadowWrapper.layer.shadowRadius = 3.0f;

在我的情况下,我将桌面视图放在页面的一半,所以我使用另一个视图坐在我的“阴影包装”上方并隐藏阴影顶部的阴影。这留下了一个阴影,坐在我的桌子视图的顶部,给人一种内部阴影的外观。