Тень представления ячейки TableView не работает должным образом в Swift - PullRequest
0 голосов
/ 02 февраля 2020

Я добавил вид в качестве фона для ячейки табличного вида, и я даю тень для вида. Здесь, когда я запускаю таблицу, тень не появляется должным образом, когда я прокручиваю вниз и вверх, тогда тень идет правильно.

Я дал тень согласно этому ответу ответ

Код :

  extension UIView {
  func dropShadow(scale: Bool = true) {
  layer.masksToBounds = false
  layer.shadowColor = UIColor.black.cgColor
  layer.shadowOpacity = 0.5
  layer.shadowOffset = CGSize(width: -1, height: 1)
  layer.shadowRadius = 1
  layer.shadowPath = UIBezierPath(rect: bounds).cgPath
  layer.shouldRasterize = true
  layer.rasterizationScale = scale ? UIScreen.main.scale : 1
}
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! PlansTableViewCell

    cell.containerView.dropShadow()
    return cell
}

Перед прокруткой тень выглядит следующим образом:

enter image description here

после прокрутки, как показано ниже:

enter image description here

После запуска (перед прокруткой) также мне нужен второй вид изображения, здесь Помогите мне с кодом.

1 Ответ

1 голос
/ 02 февраля 2020

Проблема здесь

layer.shadowPath = UIBezierPath(rect: bounds).cgPath

bounds в то время неверна, попробуйте позвонить по номеру

override func layoutSubviews() {
   super.layoutSubviews()
   self.containerViewdropShadow()
}

или

cell.layoutIfNeeded()
cell.containerView.dropShadow()
...