【问题标题】:Unable to handle cell size dynamically, According to content size无法动态处理单元格大小,根据内容大小
【发布时间】:2017-03-14 06:12:25
【问题描述】:

我正在尝试根据内容大小动态更改 tableView 单元格高度,但出现错误。

错误-

实际代码-

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
    {
        let height:CGFloat = self.calculateHeightForString(downloadTableDataa[indexPath.row] as! String)
        return height + 70.0
    }

    func calculateHeightForString(inString:String) -> CGFloat
    {
        let messageString = inString
        let attributes =  UIFont.init(name: "Roboto-Regular", size: 15)

        let attrString:NSAttributedString? = NSAttributedString(string: messageString, attributes: attributes)
        let rect:CGRect = attrString!.boundingRectWithSize(CGSizeMake(300.0,CGFloat.max), options: NSStringDrawingOptions.UsesLineFragmentOrigin, context:nil )//hear u will get nearer height not the exact value
        let requredSize:CGRect = rect
        return requredSize.height  //to include button's in your tableview

    }

【问题讨论】:

    标签: swift string uitableview uifont


    【解决方案1】:

    问题是您试图将 UIFont 类型的对象传递给属性字段,而属性字段需要 [String:AnyObject] 类型的字典。这就是错误告诉你的内容。

    之前

    let attributes = UIFont.init(name:"Roboto-Regular", size:15.0) <---- UIFont
    let attrString:NSAttributedString? = NSAttributedString(string: messageString, attributes: attributes) <---- wants a dictionary of type [String:AnyObject]
    

    之后

    let stringAttributes = [NSFontAttributeName: UIFont(name: "Roboto-Regular", size: 18.0)!] 
    let attrString = NSAttributedString(string: messageString, attributes: stringAttributes)
    

    【讨论】:

    • Could not cast value of type '__NSDictionaryI' (0x10a7dff98) to 'NSString' (0x109abab48).
    • 在行- let height:CGFloat = self.calculateHeightForString(downloadTableDataa[indexPath.row] as! String)
    • 你能展示你的calculateHeightForString方法吗?
    • 以及在哪里声明您的 downloadTableDataa 数组
    • 没有看到那些,看起来好像 downloadTableDataa[indexpath.row] 的对象是一个 NSDictionary,你试图使用“as!”强制转换到 NSString....你不能将字典转换为字符串
    猜你喜欢
    • 1970-01-01
    • 2015-10-03
    • 2021-09-28
    • 2017-02-28
    • 2011-04-04
    • 1970-01-01
    • 2016-09-30
    • 2015-02-23
    • 2014-07-08
    相关资源
    最近更新 更多