ios - 如何从单元格的 awakeFromNib() 方法中将 CAGradientLayer 添加到表格 View 中的单元格?

标签 ios uitableview swift

我一直在使用以下代码向单元格添加 CAGradient 层:

let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as myCell

cell.mImageView.image = UIImage(named: scripts[indexPath.row].thumbnailImage)

let gradientLayer = CAGradientLayer()

if(cell.layer.sublayers.count == 2){ //This is to stop stacking gradient layers
  gradientLayer.colors = [UIColor.clearColor().CGColor, UIColor.blackColor().CGColor]
  gradientLayer.locations = [0.6, 1.0]
  gradientLayer.frame = cell.bounds
  cell.layer.insertSublayer(gradientLayer, below: cell.mImageView.layer)
}

这来 self 的 CustomTableViewController 类的 tableView(_:cellForRowAtIndexPath) 方法。

我有一个 myCell 类,我更愿意用它来执行渐变布局,但我不能使用此代码或 中的 cell 对象awakeFromNib() 方法。

如何从 myCell 类的 awakeFromNib(或 init())方法中插入这个 CAGradientLayer?该单元格还包含一个标签,我也想将其插入标签下方。

最佳答案

我不知道你为什么会得到那个错误。我尝试对您的代码(在单元格类中)稍作修改,但效果不错。在这里,

class RDTableViewCell: UITableViewCell {

    @IBOutlet var mImageView: UIImageView!

    override func didMoveToSuperview() {

        let gradientLayer = CAGradientLayer()

        gradientLayer.colors = [UIColor.clearColor().CGColor, UIColor.blackColor().CGColor]
        gradientLayer.locations = [0.6, 1.0]
        gradientLayer.frame = self.bounds
        self.layer.insertSublayer(gradientLayer, below: self.mImageView.layer)
    }
}

我假设您想要单元格底部的渐变,如果我将代码放在 awakeFromNib 中,我的单元格(高度为 70)不会发生这种情况。

关于ios - 如何从单元格的 awakeFromNib() 方法中将 CAGradientLayer 添加到表格 View 中的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27893667/

相关文章:

ios - 访问附加到自定义单元格头文件的按钮

ios - 在所有 View Controller 之间共享从服务​​器获取的数据的正确方法?

php - Swift3:参数除以 "/"的HTTP POST请求

ios - cclocation 问题并澄清该主题

ios - 使用 MultiPart 上传图片

objective-c - 射击失败

ios - cell.detailTextLabel.text 为 NULL

php - 从 iOS 调用 php 函数

ios - 在多点连接中邀请对等点时偶尔发生崩溃

swift - UIButton 标题 + 使用 Paintcode 应用程序的图像