gpt4 book ai didi

ios - 在 UITableViewCell 的背景图像上添加渐变

转载 作者:行者123 更新时间:2023-11-30 12:01:18 24 4
gpt4 key购买 nike

我在 UIViewController 内有一个 UITableView。我正在尝试在 UITableViewCell 中的背景图像上应用渐变。我可以绘制渐变,但它在颜色之间绘制一条干净的线,而不是渐变。

在我的 cellForRowAt 中,我将一个对象分配给我的 CustomTableViewCell,如下所示:

  let cellIdentifier = "Cell"
// all the standard data source, delegate stuff for uitableviews

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as! CustomTableViewCell
let scheduleItem = scheduleData[indexPath.row]
cell.scheduleStruct = scheduleItem
return cell
}

CustomTableViewCell 中,我声明了此属性:

    public var scheduleStruct: FullScheduleStruct? {
didSet {
configureCell()
}
// emptyView to throw on top of a background image
var gradientView: UIView?

我还使用 Kingfisher 从互联网上获取图像,这就是 ImageResource(downloadURL: url) 部分所发生的情况。当 scheduleStruct 设置时调用的 configureCell() 方法如下:

    private func configureCell() {

// get the background image
if let url = scheduleStruct?.show.image?.original {
let imageUrl = ImageResource(downloadURL: url)
backgroundImageView.contentMode = .scaleAspectFill
backgroundImageView.kf.setImage(with: imageUrl)

// configure the gradientView
gradientView = UIView(frame: backgroundImageView.frame)
let gradient = CAGradientLayer()
gradient.frame = gradientView!.frame
gradient.colors = [UIColor.clear.cgColor, UIColor.white.cgColor]
// gradient.locations = [0.0, 1.0]
gradient.startPoint = CGPoint(x: 0, y: 0)
gradient.endPoint = CGPoint(x: 0, y: 1)
gradientView!.layer.insertSublayer(gradient, at: 0)
backgroundImageView.insertSubview(gradientView!, at: 0)
}

非常感谢任何关于我的错误所在的建议。感谢您的阅读。

最佳答案

David Shaw根据建议,我在 configureCell()

中注释掉了这一行
  // backgroundImageView.kf.setImage(with: imageUrl)

并且渐变绘制正确。我推断我遇到了计时问题,因为我正在异步获取图像。

我查看了方法签名,发现其中有一个带有完成处理程序,因此我使用了它,并且它起作用了:

  backgroundImageView.kf.setImage(with: imageUrl, completionHandler: { (image, error, cacheType, imageUrl) in
// do stuff
})

...所以我做了this .

关于ios - 在 UITableViewCell 的背景图像上添加渐变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47187613/

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