Как получить ключ за содержимым видимой строки в табличном представлении? - PullRequest
0 голосов
/ 06 июня 2019

То, что я пытаюсь сделать, это:

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

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "post")
    let imageView = cell?.viewWithTag(1) as! UIImageView
    imageView.sd_setImage(with: URL(string: posts[indexPath.row].postUrl), placeholderImage: UIImage(imageLiteralResourceName: "SymboleBLANC3x-1.jpg"))
    return cell!
}

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return posts.count
}

override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return tableView.frame.size.height
}

override func viewDidLoad() {
    super.viewDidLoad()
    loadPosts()
}

var posts = [Post]()
func loadPosts() {
    Database.database().reference().child("posts").observe(.childAdded) { (snapshot: DataSnapshot) in
        if let dict = snapshot.value as? [String: Any]{
            let url = dict["postUrl"] as? String
            let rank = dict["rank"] as? Int
            let post = Post(urlString: url!, rankNumber: rank ?? 0)
            self.posts.append(post)
            self.tableView.reloadData()

        }
 }

1 Ответ

0 голосов
/ 06 июня 2019

Вы можете получить последний видимый индекс из приведенного ниже кода и на основании этого вы можете извлечь контент из вашего основного массива.

let visibleArray = tableView.indexPathsForVisibleRows
let indexPath = visibleArray?.value(forKeyPath: "@max.self") as? IndexPath
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...