iOS7,渐变作为背景在表格视图中滚动

时间:2014-03-31 11:20:40

标签: objective-c cocoa-touch uitableview ios7

我想将渐变应用为整个视图的背景。例如。我有一个表视图,我希望表视图是透明的,底层视图的渐变背景应该透过。

我找到了这个资源:http://www.danielbeard.io/blog/2012/02/25/gradient-background-for-uiview-in-ios/

CAGradientLayer *bgLayer = [GradientBackground blueGradient];
bgLayer.frame = self.view.bounds;
[self.view.superview.layer insertSublayer:bgLayer atIndex:0];

我设法为背景添加渐变。但是,当我滚动表格视图时,渐变也会滚动。

我应该怎么做以防止渐变滚动?渐变应该与表同时滚动,或者渐变应该应用于不滚动的底层视图。

任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:1)

创建一个新的UIView,其中一个图层设置为CAGradientLayer,并将该视图分配给tableView.backgroundView。让单元格颜色为clearColor

答案 1 :(得分:1)

代码示例,在viewWillDisplay方法中添加子图层

_contentHolder = [UIView new];
[self addSubview:_contentHolder];        
_tableView = [[UITableView alloc] initWithFrame:CGRectZero
                                                  style:UITableViewStylePlain];
_tableView.backgroundColor = [UIColor clearColor];
[_contentHolder addSubview:_tableView];

CAGradientLayer *bgLayer = [GradientBackground blueGradient];
bgLayer.frame = self.view.bounds;
[_contentHolder.layer insertSublayer:bgLayer atIndex:0];