Swift pdf не охватывает все ячейки в табличном представлении - PullRequest
0 голосов
/ 08 ноября 2018

Я исследовал это решение для совместного использования ячеек табличного представления через UIActivityViewController, однако количество строк в моем tableView превышает высоту, показанную здесь, и поэтому некоторые из моих ячеек табличного представления 'обрезаются' в полученном pdf / email / и т.д.

   let priorBounds: CGRect = self.tableView.bounds
    let fittedSize: CGSize = self.tableView.sizeThatFits(CGSize(width: priorBounds.size.width, height: self.tableView.contentSize.height))
    self.tableView.bounds = CGRect(x: 0, y: 0, width: fittedSize.width, height: fittedSize.height)
    self.tableView.reloadData()
    let pdfPageBounds: CGRect = CGRect(x: 0, y: 0, width: fittedSize.width, height: (fittedSize.height))
    let pdfData: NSMutableData = NSMutableData()
    UIGraphicsBeginPDFContextToData(pdfData, pdfPageBounds, nil)
    UIGraphicsBeginPDFPageWithInfo(pdfPageBounds, nil)
    self.tableView.layer.render(in: UIGraphicsGetCurrentContext()!)
    self.tableView.bounds = priorBounds
    UIGraphicsEndPDFContext()
    let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first
    let documentsFileName = documentDirectories! + "/" + "pdfName"
    pdfData.write(toFile: documentsFileName, atomically: true)

Правильно ли я считаю, что правильный способ решить эту проблему - увеличить глубину fitSize.height:

   let priorBounds: CGRect = self.tableView.bounds
    let fittedSize: CGSize = self.tableView.sizeThatFits(CGSize(width: priorBounds.size.width, height: self.tableView.contentSize.height))
    self.tableView.bounds = CGRect(x: 0, y: 0, width: fittedSize.width, height: fittedSize.height * 2.5)
    self.tableView.reloadData()
    let pdfPageBounds: CGRect = CGRect(x: 0, y: 0, width: fittedSize.width, height: (fittedSize.height * 2.5))
    let pdfData: NSMutableData = NSMutableData()
    UIGraphicsBeginPDFContextToData(pdfData, pdfPageBounds, nil)
    UIGraphicsBeginPDFPageWithInfo(pdfPageBounds, nil)
    self.tableView.layer.render(in: UIGraphicsGetCurrentContext()!)
    self.tableView.bounds = priorBounds
    UIGraphicsEndPDFContext()
    let documentDirectories = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first
    let documentsFileName = documentDirectories! + "/" + "pdfName"
    pdfData.write(toFile: documentsFileName, atomically: true)

Хотя это работает, это не очень красиво - я заканчиваю с большим количеством потраченного впустую места в нижней части pdf / email / etc и, конечно, предполагается, что список не будет длиннее, чем в 2,5 раза, чем fitsize.height - Is есть лучшее решение, которое знает, где находится дно ячейки таблицы? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...