我有一些数据的简单UITableView。 table 的高度大于屏幕尺寸。现在,我需要捕获此表(整个表)的屏幕截图。我知道内容出队后的单元格,但是也许有一种方法可以捕获它。是不是

最佳答案

试试这个:

 func generateImage(tblview:UITableView) ->UIImage{
        UIGraphicsBeginImageContext(tblview.contentSize);
        tblview.scrollToRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0), atScrollPosition: UITableViewScrollPosition.Top, animated: false)
        tblview.layer.renderInContext(UIGraphicsGetCurrentContext())
        let row = tblview.numberOfRowsInSection(0)
        let numberofRowthatShowinscreen = 4
        var scrollCount = row / numberofRowthatShowinscreen

        for var i=0;i < scrollCount ; i++ {
            tblview.scrollToRowAtIndexPath(NSIndexPath(forRow: (i+1)*numberofRowthatShowinscreen, inSection: 0), atScrollPosition: UITableViewScrollPosition.Top, animated: false)
            tblview.layer.renderInContext(UIGraphicsGetCurrentContext())
        }

        let image:UIImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext();
        return image;
}

和这样的调用方法之后。
 var imageView = UIImageView()
     imageView.image =generateImage(tableView)

10-08 09:31