Ich habe eine ziemlich standardmäßige UITableView, die über benutzerdefinierte Zelle aufgefüllt wird. Diese Zelle ist im Moment einfach ein Bild und ein Etikett. Ich kann es für mein Leben nicht ändern.Kann UITableViewAutomaticDimension nicht ordnungsgemäß arbeiten
Wenn ich UITableViewAutomaticDimension einfüge, verliere ich die Fähigkeit, meine Daten zusätzlich zu falschen Layouts zu füllen.
Ohne UITableViewAutomaticDimension werden die Daten ordnungsgemäß angezeigt.
I sindSnapKit mit Einschränkungen zu handhaben und Meteor/SwiftDDP die Daten zu handhaben, aber es ist ein weiterer UITableView in dem Projekt, das richtig zu sein scheint
Viewcontroller
class CommentViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var commentTable:UITableView!
var comments:MeteorCollection<Comment>!
init() {
super.init(nibName: nil, bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
comments = MeteorCollection<Comment>(name: "comments")
createView()
Meteor.subscribe("postsComments", params: [["postId": self.source!.id!]]) {}
}
func createView() {
let contentTableView = UITableView(frame: content.frame)
content.addSubview(contentTableView)
contentTableView.backgroundColor = UIColor.clearColor()
self.commentTable = contentTableView
contentTableView.delegate = self
contentTableView.dataSource = self
contentTableView.snp_makeConstraints { (make) -> Void in
make.top.equalTo(content)
make.left.equalTo(content)
make.right.equalTo(content)
make.height.equalTo(content).inset(65)
}
contentTableView.rowHeight = UITableViewAutomaticDimension
contentTableView.estimatedRowHeight = 350
}
}
Arbeits CommentTableViewDelegate.swift
import UIKit
extension CommentViewController {
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.comments.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(CommentTableViewCell.reuseIdentifier, forIndexPath: indexPath) as UITableViewCell
cell.setNeedsUpdateConstraints()
cell.updateConstraintsIfNeeded()
if let card = cell as? CommentTableViewCell {
let item = self.comments.sorted[indexPath.row]
card.populate(item)
}
return CommentTableViewCell()
}
func reloadTableView() {
self.commentTable.reloadData()
}
}
Ein Beispiel für meine verstümmelte Durcheinander, wenn nicht UITableViewAutomaticDimension mit
Ein Beispiel für meine verstümmelte Durcheinander, wenn UITableViewAutomaticDimension
bitte contentTableView.estimatedRowHeight = 1 // Schätzwert gesetzt, wenn weniger als Arbeit richtig –