gpt4 book ai didi

与填充文本的标签高度成比例的快速动态表格 View

转载 作者:行者123 更新时间:2023-11-30 12:58:04 24 4
gpt4 key购买 nike

您好,我正在尝试使用自定义单元格制作表格 View 。制作它的主要目标是根据文本大小改变的标签高度按比例调整表格 View 单元格的高度。当我使用下面的代码运行我的应用程序时,它看起来进展顺利。但是 getStringHeight 方法有时无法识别单元格的行。即使行数只有一行,该方法也会分配两行单元格,这使得单元格没有必要的空间。

我认为如果它能识别两行,则该行超过 3/4 的地方充满了一行文本。我想我使用 Apple SD Gothic (Family) 中包含的韩文字体。但我可以在 UIFont(name: "", size:) 中输入确切的名称,因为它无法识别它。

你能帮我吗?这是一个非常重要的项目。我彻夜未眠,但我还没有想出解决这个问题的办法。

 func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
let rowNum = downloadedContents!.count - indexPath.row - 1

let sizeFactory = UINib(nibName: "DownLoadPlayViewControllerCell", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as? DownLoadPlayViewControllerCell
sizeFactory!.frame.size.height = 300
var bounds = CGSize(width: tableView.bounds.width, height: 78.5)
let pod = self.pods[rowNum]
if(sizeFactory != nil)
{
let top = sizeFactory?.programLabel.frame
let bottom = sizeFactory?.dateFilesizeLabel.frame


var labelSize = getStringHeight(pod.contentTitle!, fontSize: 13.0, width: sizeFactory!.titleLabel.frame.width)

let totalCellHeight = labelSize + top!.height + bottom!.height + 28.0
bounds.height = totalCellHeight
}


return bounds.height


}

func getStringHeight(mytext: String, fontSize: CGFloat, width: CGFloat) -> CGFloat
{
let font = UIFont(name: "Apple SD Gothic Neo", size: fontSize)
let size = CGSizeMake(width,CGFloat.max)
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineBreakMode = .ByWordWrapping;
let attributes = [NSFontAttributeName:font! as UIFont,
NSParagraphStyleAttributeName:paragraphStyle.copy()]

let text = mytext as NSString
let rect = text.boundingRectWithSize(size, options:.UsesLineFragmentOrigin, attributes: attributes, context:nil)
return rect.size.height
}

最佳答案

我可能建议您使用:

tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 60

这将自动调整单元格的高度,而无需查找文本的高度。您可以将这两行放在 viewDidLoad 上作为估计行高,它可以帮助您渲染。

关于与填充文本的标签高度成比例的快速动态表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40189092/

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