大家好,我最近一直在处理 iOS 中的 UITableViews。我的 UITableView 返回了一些奇怪的结果..
一些照片显示
Then The first cell is so big.
Then the 2nd Cell looks like this
这些所有的单元格都有不同的大小..
类的代码是这样的
import UIKit
import FLAnimatedImage
class ShotDetailTableViewController: UITableViewController {
@IBOutlet weak var bgImageView: FLAnimatedImageView!
@IBOutlet weak var viewsCount: UILabel!
@IBOutlet weak var likesCount: UILabel!
@IBOutlet weak var commentsCount: UILabel!
@IBOutlet weak var avatarImageView: UIImageView!
@IBOutlet weak var usernameLabel: UILabel!
@IBOutlet weak var descriptionLabel: UILabel!
@IBOutlet weak var reboundCount: UILabel!
@IBOutlet weak var attachmentCount: UILabel!
@IBOutlet weak var tagsCollectionView: UICollectionView!
@IBOutlet weak var reboundCollectionView: UICollectionView!
@IBOutlet weak var attachmentCollectionView: UICollectionView!
@IBOutlet weak var commentTableView: UITableView!
var shots : [Shot] = [Shot]()
var comments : [Comment] = [Comment]()
var shot : Shot!
var reboundPages = 1
var attachmentPages = 1
override func viewDidLoad() {
super.viewDidLoad()
title = shot.title
bgImageView.sd_setImageWithURL(NSURL(string: shot.imageUrl), placeholderImage: UIImage(named: "1"), options: .ContinueInBackground)
viewsCount.text = "\(shot.viewsCount)"
likesCount.text = "\(shot.likesCount)"
commentsCount.text = "\(shot.commentCount)"
avatarImageView.sd_setImageWithURL(NSURL(string: shot.user.avatarUrl), placeholderImage: UIImage(named: "2"))
usernameLabel.text = "\(shot.user.username)"
descriptionLabel.text = "\(shot.description)"
reboundCount.text = "\(shot.reboundCount)"
attachmentCount.text = "\(shot.attachmentsCount)"
commentTableView.delegate = self
commentTableView.dataSource = self
commentTableView.estimatedRowHeight = 100.0;
commentTableView.rowHeight = UITableViewAutomaticDimension;
commentTableView.separatorStyle = UITableViewCellSeparatorStyle.None
let api = DribbleObjectHandler()
api.loadComments(shot.commentsUrl, completion:didLoadComments)
NSUserDefaults.standardUserDefaults().setValue(true, forKey: "_UIConstraintBasedLayoutLogUnsatisfiable")
}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if tableView == commentTableView {
return UITableViewAutomaticDimension
} else {
return UITableViewAutomaticDimension
}
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
avatarImageView.clipsToBounds = true
avatarImageView.layer.cornerRadius = 25
self.commentTableView.reloadData()
}
func didLoadComments(comments : [Comment]){
self.comments = comments
self.commentTableView.reloadData()
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
if tableView == commentTableView {
return 1
} else {
return 1
}
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
if tableView == commentTableView {
return comments.count
} else {
return super.tableView(tableView, numberOfRowsInSection: section)
}
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if tableView == commentTableView {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CommentCell
// Configure the cell...
let comment = comments[indexPath.row]
//cell.nameLabel.text = comment.user.name
// cell.commentLabel.text = comment.body
//cell.avatarImageView.sd_setImageWithURL(NSURL(string: comment.user.avatarUrl), placeholderImage: UIImage(named: "2"))
cell.avatarImageView.image = UIImage(named: "2")
return cell
} else {
let cell = super.tableView(tableView, cellForRowAtIndexPath: indexPath)
return cell
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
当我实现 heightForRowAtIndexPath 时,tableView 变得非常小 不幸的是我不能放置超过 2 个链接..所以我不能显示图片 我在日志中没有发现任何错误
我试图找到与此相关的问题,但找不到太多。
提前致谢 雅利安人
最佳答案
尝试实现 heightForRowAtIndexPath
,而不是实现 estimatedHeightForRowAtIndexPath
。
关于ios - UITableView 返回奇怪的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35877524/