Визуализируйте весь UITableView как изображение!делиться - PullRequest
0 голосов
/ 15 декабря 2018

Я нашел этот код, но он сильно экономит, например, 75% tableView, даже за пределами экрана, но не всю таблицу.Мне было интересно, если кто-нибудь понимает, почему он не отображает полную таблицу или как ее изменить, чтобы она отображала всю таблицу.Или другой код, который будет надежно отображать весь и вне экрана tableView?Заранее спасибо.Надеюсь, что другие могут использовать это.Я нахожусь в Swift 4. Я могу опубликовать изображение, если необходимо (только длинное табличное изображение, которое это производит, но не полную таблицу.) Возможно, табличное изображение создается до полной загрузки таблицы, не уверен, предположение о проблеме.Я новичок в программировании.

вот код, который у меня есть:

  @objc func shareScreen() {
    UIGraphicsBeginImageContextWithOptions(CGSize(width:tableView.contentSize.width, height:tableView.contentSize.height),false, 0.0)

    let context = UIGraphicsGetCurrentContext()
    let previousFrame = tableView.frame

    tableView.frame = CGRect(x: tableView.frame.origin.x, y: tableView.frame.origin.y, width: tableView.contentSize.width, height: tableView.contentSize.height)

    self.tableView.layer.render(in: context!)
    self.tableView.frame = previousFrame

    let image = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext()

    self.shareCellTable(image)
}

1 Ответ

0 голосов
/ 15 декабря 2018

Вот что у меня было.Но это ты мне решил.вот что я сделал: добавил переменную класса:

var tableHeight: CGFloat = 0.0 

в viewWillAppear добавил:

override func viewWillAppear() { super.viewDidLoad() 
tableView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil) 

в viewWillDisappear:

tableView.removeObserver(self, forKeyPath: "contentSize")
super.viewWillDisappear(true)

затем в shareScreen () funcизменить (только что изменили; высота: tableHeight:)

tableView.frame = CGRect(x: tableView.frame.origin.x, y: tableView.frame.origin.y, 
width: tableView.contentSize.width, height: tableHeight)

отлично работает!Я получаю всю длинную таблицу в виде изображения :) Я могу опубликовать полный функционал, если это лучше?Вот длинная полная таблица результатов: https://imgur.com/a/iIYvVaO happy happy ?

...