gpt4 book ai didi

ios - iPad 上的渐变背景 iPhone 尺寸

转载 作者:搜寻专家 更新时间:2023-11-01 06:49:58 25 4
gpt4 key购买 nike

我在 iPad 上设置渐变背景时遇到问题。在 iPhone 上一切正常,但当我使用 iPad 时,渐变背景具有 iPhone 尺寸。

This is the problem

我用来制作渐变的代码如下。

func setGradientToTableView(tableView: UITableView) {

let gradientBackgroundColors = [UIColor(red: 190.0/255.0, green: 219.0/255.0, blue: 0.0/255.0, alpha: 1).cgColor, UIColor(red: 13.0/255.0, green: 227.0/255.0, blue: 97.0/255.0, alpha: 1).cgColor]

let gradientLayer = CAGradientLayer()
gradientLayer.colors = gradientBackgroundColors
gradientLayer.startPoint = CGPoint(x: 0,y: 0)

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

最佳答案

您需要在viewDidLayoutSubviews 中为层设置框架:

    override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
tableView.backgroundView?.layer.sublayers?.forEach { $0.frame = tableView.bounds }
}

此外,正如@Jan Schlorf 在评论中建议的那样,您可以将图层存储为属性:

    lazy var gradientLayer = CAGradientLayer()

//...

func setGradientToTableView(tableView: UITableView) {
let gradientBackgroundColors = [UIColor(red: 190.0/255.0, green: 219.0/255.0, blue: 0.0/255.0, alpha: 1).cgColor, UIColor(red: 13.0/255.0, green: 227.0/255.0, blue: 97.0/255.0, alpha: 1).cgColor]

gradientLayer.colors = gradientBackgroundColors
gradientLayer.startPoint = CGPoint(x: 0,y: 0)

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

//...

override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
gradientLayer.frame = tableView.bounds
}

关于ios - iPad 上的渐变背景 iPhone 尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58197905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com