如何在swift 3上将UITableViewController的背景颜色更改为渐变色

Posted

技术标签:

【中文标题】如何在swift 3上将UITableViewController的背景颜色更改为渐变色【英文标题】:How to change the background color of UITableViewController to gradient color on swift 3 【发布时间】:2017-03-25 17:29:47 【问题描述】:

我想将我的 UITableViewController 背景颜色更改为渐变色。

我的代码如下:

override func viewDidLoad() 
    super.viewDidLoad()

    let gradient = CAGradientLayer()
    let gradientLocations = [0.0,1.0]

    gradient.frame = view.bounds;
    gradient.colors = [primaryColor, secondaryColor]
    gradient.locations = gradientLocations as [NSNumber]?

    let backgroundView = UIView(frame: view.bounds)
    backgroundView.layer.insertSublayer(gradient, at: 0)
    tableView.backgroundView = backgroundView

    tableView.separatorStyle = UITableViewCellSeparatorStyle.none
    tableView.backgroundColor = UIColor.clear


然后变成黑色。

我发现了这个非常相似的问题,但它无法解决我的问题。 Set gradient behind UITableView

请帮忙! 提前致谢。

【问题讨论】:

我的谷歌搜索...“swift 3 渐变背景”.. 最佳结果.. ***.com/questions/24380535/….虽然这不是专门针对表格视图的,但它应该可以解决您的一个问题……然后是所有问题。 【参考方案1】:

我创建了一个带有完全包含您的代码的表格视图控制器的新项目。我所要做的就是使单元格也透明,就像你链接到的帖子所说的那样。它起作用了,所以这让我很好奇。您没有显示 primaryColorsecondaryColor 是什么。

请注意,您需要在gradient.colors 中使用CGColors。我刚刚尝试使用UIColors,屏幕也一样黑。尝试使用

gradient.colors = [UIColor.red.cgColor, UIColor.blue.cgColor]

或者更确切地说(如果它们确实是 UIColor 类型)

gradient.colors = [primaryColor.cgColor, secondaryColor.cgColor]

【讨论】:

以上是关于如何在swift 3上将UITableViewController的背景颜色更改为渐变色的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 如何在 Firebase 上将排序查询创建为降序?

如何在 iOS 上将“MongoDB 日期时间(ISO 日期)”解析为 NSDate(swift 和 Objective-c)

如何在 Swift 上将具有自定义 ID 的文档添加到 Firebase (Firestore)

如何在 Swift 上将 Parse `PFUser` 从`MapView` 传递(抓取)到另一个`ViewController`?

在 Swift 上将所有手势从 UIView 转换为 UIScrollView

Swift:如果为空则隐藏标签