添加渐变以滚动UITableView

时间:2015-03-24 19:47:36

标签: ios uitableview swift

我能够添加一个渐变我的UITableView,但我有一个问题,当我必须滚动我的单元格时,渐变背景也会滚动。当我向上或向下滚动时,我希望背景保持一致。我怎样才能做到这一点?我是否必须创建自定义UITableView才能执行此操作?

下面的图片展示了它目前的样子。

这是我将梯度添加到UITableView的代码:

func addGradientToBackground(){
    var gradient : CAGradientLayer = CAGradientLayer()
    gradient.frame = self.tableView.bounds
    gradient.colors = [UIColor.blueColor().CGColor, UIColor.redColor().CGColor]
    self.tableView.layer.insertSublayer(gradient, atIndex: 0)
}

设置渐变时,设置渐变也不起作用,例如设置:

self.view.layer.insertSublayer(gradient, atIndex: 0)

或更改界限:

gradient.frame = self.tableView.frame

此外,在cellForRowAtIndexPath中,我将UITableViewCells背景颜色设置为清除:

cell.backgroundColor = UIColor.clearColor()

我无法添加图片,但如果您希望看到这些图片,请点击此链接:http://imgur.com/Vtka1tO,6faLMkr#0

2 个答案:

答案 0 :(得分:4)

如果您不希望滚动,则渐变需要位于表格视图的后面。如果您正在使用UITableViewController,那么唯一的背后是窗口,因此您可以为其指定渐变,并使单元格和表格视图具有清晰的背景颜色。如果您正在使用带有表视图的UIViewController作为子视图,那么您可以为控制器的主视图提供渐变背景颜色。

答案 1 :(得分:0)

您是否考虑过如下添加背景图片?

var imageView = UIImageView(frame: CGRectMake(10, 10, cell.frame.width - 10, cell.frame.height - 10))
let image = UIImage(named: ImageNames[indexPath.row])
imageView.image = image
cell.backgroundView = UIView()
cell.backgroundView.addSubview(imageView)