gpt4 book ai didi

ios - 如何计算字符串的高度?

转载 作者:IT王子 更新时间:2023-10-29 05:36:55 25 4
gpt4 key购买 nike

我正在尝试调整单元格高度以适应 UILabel 文本,但它不起作用..

var mySize = CGFloat()
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! cellView

cell.myLabel.text = self.items[indexPath.item]
cell.myLabel.bounds.size.height = self.mySize

cell.backgroundColor = UIColor.yellowColor()

return cell
}

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
// handle tap events
print("You selected cell #\(indexPath.item)!")
}

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {

func heightForLabel(text:String, font:UIFont, width:CGFloat) -> CGFloat
{
let label:UILabel = UILabel(frame: CGRectMake(0, 0, width, CGFloat.max))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.ByWordWrapping
label.font = font
label.text = items[indexPath.row]

label.sizeToFit()
return label.frame.height
}

let font = UIFont(name: "Helvetica Neue", size: 30)
let detailHeight = heightForLabel(items[indexPath.row], font: font!, width: UIScreen.mainScreen().bounds.size.width)

self.mySize = detailHeight

return CGSizeMake(UIScreen.mainScreen().bounds.size.width, 358 + detailHeight)
}

有什么建议可以在这里做什么?我应该换一种方式吗?拜托,我需要帮助。问题是 UILabel 文本设置在 cellForItemAtIndexPath 中,而 items 是一个字符串数组。

这是我的项目文件,如果有人看一看: http://www.filedropper.com/test_37

最佳答案

为什么不在 ObjC 中尝试这个

 [text boundingRectWithSize:CGSizeMake(maxWidth, maxHeight)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:nil context:nil]

这将给出 CGRect。从中获取高度。在属性参数中设置字体大小等。

更新

代替这个

let detailHeight = heightForLabel(items[indexPath.row], font: font!, width: UIScreen.mainScreen().bounds.size.width)

使用这个

let height = items[indexPath.row].boundingRectWithSize(CGSizeMake(CGFloat.max,UIScreen.mainScreen().bounds.size.width), options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName: font!], context: nil).size.height

希望对你有帮助

关于ios - 如何计算字符串的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34262863/

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