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

Posted

技术标签:

【中文标题】iOS7,渐变作为背景在表格视图中滚动【英文标题】:iOS7, gradient as background scrolls away in table view 【发布时间】:2014-03-31 11:20:40 【问题描述】:

我想应用渐变作为整个视图的背景。例如。我有一个表格视图,我希望表格视图是透明的,并且底层视图的渐变背景应该会发光。

我找到了这个资源: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];

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

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

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

【问题讨论】:

为表超级视图添加渐变并使其透明:) @sage444 你能显示一些代码吗? 【参考方案1】:

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

【讨论】:

【参考方案2】:

代码示例,在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];

【讨论】:

内容持有者必须是财产或者您没有声明它的原因是什么? 哦,是的,这只是现场项目的一些剪辑

以上是关于iOS7,渐变作为背景在表格视图中滚动的主要内容,如果未能解决你的问题,请参考以下文章

带有渐变颜色的滚动视图

在 UITableviewCell (ios7) 中嵌入的 UITableView 中滚动

当有其他内容时,滚动视图顶部/底部的渐变

分配代理以检测滚动后,TableView单元格重叠

当用户在表格视图中向下滚动时,如何将 UINavigationBar 背景颜色从透明更改为红色

iOS7 - 无法在滚动视图中嵌入屏幕