У меня есть простой вопрос, для которого я не нашел ничего связанного в Интернете.
Что более практично?
- Наличие TableViewCell у которого более 10+ подпредставлений (внутри стекового вида), но обычно отображается только 3-4, другие скрыты.
- Или с пустым стековым видом и добавлением каждого вида по коду при необходимости.
Например, для второго варианта:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell : PostCell
guard let post = PostsStore.shared.posts.getPost(index: indexPath.row) else {
return UITableViewCell()
}
// Remove reused cell's stackview's views
cell.stackView.subviews.forEach({ $0.removeFromSuperview() })
if post.voteAddon != nil {
if let voteView = Bundle.main.loadNibNamed("VoteView", owner: self, options: nil)?.first as? VoteView {
voteView.voteForLabel = "Vote for X or Y"
voteView.buttonX.setTitle("\(post.votes.x) votes", for: .normal)
voteView.buttonY.setTitle("\(post.votes.y) votes", for: .normal)
cell.stackView.addArrangedSubview(voteView)
}
}
if post.attachments != nil {
if let attachmentsView = Bundle.main.loadNibNamed("AttachmentsView", owner: self, options: nil)?.first as? AttachmentsView {
attachmentsView.attachmentImageView.image = UIImage()
cell.stackView.addArrangedSubview(attachmentsView)
}
}
cell.delegate = self
return cell
}
Это всего лишь пример, в действительности эти представления являются более сложными.
Что быболее практичным?Первый вариант проще, но второй может быть лучше для обработки памяти. Что вы думаете об этом?