gpt4 book ai didi

ios - 根据内容修改自定义 TableViewCell 大小

转载 作者:可可西里 更新时间:2023-11-01 02:18:33 25 4
gpt4 key购买 nike

我希望能够调整自定义 TableViewCell 的大小以包装其内容,内容可以是可变大小的图像和/或任意数量的文本行,后跟一个投票栏。

我的 OMCFeedTableViewCell 看起来像这样:

Prototype Cell

我试过设置约束、修改框架,但没有任何效果。

到目前为止,这是我的代码:

在 FeedViewController 中:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("OMCFeedCell", forIndexPath: indexPath) as! OMCFeedTableViewCell
let p = posts[indexPath.row]

cell.selectionStyle = .None
let data = p.content!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
let content = try! JSON(NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers))
let image = content["image"].string

let uploads = uploadAPI()
uploads.tryGetImage(image) {
(result: UIImage?) in

if let i = result {
cell.postImage.image = i
cell.postImage.contentMode = .ScaleAspectFill
let containerWidth = cell.postImage.frame.width
let aspectRatio = i.size.height / i.size.width
let scaledHeight = aspectRatio * containerWidth
// do something with the calculated height
} else {
// kill the imageview
}
}
if let text = content["text"].string {
cell.postText.text = text
// calculate the textview height
} else {
// kill the text section
}

return cell
}

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if heights[indexPath.row] == nil {
// calculate the correct overall height
}
return heights[indexPath.row]!
}

在 OMCFeedTableViewCell 中:

import UIKit

class OMCFeedTableViewCell: UITableViewCell {
@IBOutlet weak var postImage: UIImageView!
@IBOutlet weak var postText: UILabel!
@IBOutlet weak var voteLabel: UILabel!
@IBOutlet weak var downVoteButton: UIButton!
@IBOutlet weak var upVoteButton: UIButton!

}

最佳答案

您可以使用 UITableViewAutomaticDimension,它会根据内容自动调整您的单元格大小。

self.tableView.rowHeight = UITableViewAutomaticDimension

同时设置你的estimatedRowHeigh

self.tableView.estimatedRowHeight = 120

另外根据经验,有时主要内容 View 的底部约束给我带来了问题,如果它困扰你,你可以将其删除。

关于ios - 根据内容修改自定义 TableViewCell 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33792916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com