Я установил цвет градиента на UIView
внутри моего UITableViewCell
.Все отлично работает при первой загрузке, но после прокрутки, цвет градиента загружается снова и меняет положение каждый раз, чем фактическое заданное условие.Вот мой код для реализации цвета градиента:
что мне делать?
Добавить слой градиента
func gradient(frame:CGRect,colors: [CGColor]) -> CAGradientLayer {
let layer = CAGradientLayer()
layer.frame = frame
layer.startPoint = CGPoint(x: 1.0, y: 0.0)
layer.endPoint = CGPoint(x: 0.0, y: 1.0)
layer.locations = [0.5,0.35]
layer.colors = colors
return layer
}
UITableViewCell Класс
class AllOfferlistCell: UITableViewCell {
@IBOutlet weak var lbltitle: UILabel!
@IBOutlet weak var lblPopular: UILabel!
@IBOutlet weak var VwPercentage: UIView!
}
tableView cellForRowAtindexPath
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! AllOfferlistCell
cell.lbltitle.text = "Index \(indexPath.row)"
if self.DataArray[indexPath.row].Flag == "1"{
cell.VwPercentage.layer.insertSublayer(gradient(frame: cell.VwPercentage.bounds, colors: [UIColor.red.cgColor,UIColor.white.cgColor]), at: 1)
cell.lblPopular.text = "POPULAR"
}else{
cell.VwPercentage.layer.insertSublayer(gradient(frame: cell.VwPercentage.bounds, colors: [UIColor.blue.cgColor,UIColor.white.cgColor]), at: 1)
cell.lblPopular.text = "50% OFF"
}
return cell
}
Выход:
Первая загрузка
После прокрутки