У меня есть представление таблицы в контроллере представления в моем приложении, и данные в ячейках отображаются нормально, однако я пытаюсь адаптировать таблицу, чтобы она отображалась как представление карты.Я написал код, чтобы попытаться добавить это, однако карта появляется в ячейке таблицы только после того, как я щелкну по ячейке и вернусь к таблице.В этот момент только выбранная ячейка отображает карту, оставляя все остальные ячейки как есть.
Я добавил UIView в ячейку прототипа и пометил его новым классом, который я написал, под названием «CardView».Код для этого класса приведен ниже:
import UIKit
@IBDesignable
class CardView: UIView {
@IBInspectable var cornerRadius: CGFloat = 15
@IBInspectable var shadowColor: UIColor? = UIColor.black
@IBInspectable let shadowOffsetWidth: Int = 3
@IBInspectable let shadowOffsetHeight: Int = 3
@IBInspectable let shadowOpacity: Float = 0.2
override func layoutSubviews() {
layer.cornerRadius = cornerRadius
layer.shadowColor = shadowColor?.cgColor
layer.shadowOffset = CGSize(width: shadowOffsetWidth, height: shadowOffsetHeight)
let shadowPath = UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius)
layer.shadowPath = shadowPath.cgPath
layer.shadowOpacity = shadowOpacity
backgroundColor = UIColor.blue
}
}
В случае, если это также может повлиять на то, что я пытаюсь выполнить, ниже приведена функция cellForRowAt в контроллере представления таблицы.Единственный элемент, который я здесь изменил, это то, что я обозначил вид контента белым, который должен отображаться вокруг вида карточки:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//Table view cells are reused and should be dequeued using a cell identifier.
let cellIdentifier = "cell"
guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? AccountTableViewCell else {
fatalError("The dequeued cell is not an instance of AccountTableViewCell")
}
//Fetches the appropriate account for the data source layout.
let account = accounts[indexPath.row]
cell.accountName.text = account.name
cell.amountDue.text = String(format: "$%.2f", account.amountDue)
cell.contentView.backgroundColor = UIColor.white
return cell
}