Просмотр карты не появляется, пока выбор не сделан в представлении таблицы - PullRequest
0 голосов
/ 24 февраля 2019

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

Я добавил 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
}
...