Swift 3:如何删除UITableView截图的灰色区域

我在从tableview的屏幕截图中删除灰色区域时遇到了问题。

这是我试图截图UITableView的输出(我实际上隐藏了一些不需要的tableViewCell ,可能这就是为什么区域显示为灰色)

任何帮助表示赞赏!

非常感谢你! 🙂

回答

我用@kishan和@ Sneak的答案find了解决scheme。 正如我以编程方式截图我的UITableView ,我只是将代码中的视图和tableview的backgroundColor更改为白色。

 func screenshot() -> UIImage{ var image = UIImage(); UIGraphicsBeginImageContextWithOptions(self.tableView.contentSize, false, UIScreen.main.scale) // save initial values let savedContentOffset = self.tableView.contentOffset; let savedFrame = self.tableView.frame; let savedBackgroundColor = self.tableView.backgroundColor // reset offset to top left point self.tableView.contentOffset = CGPoint(x: 0, y: 0); // set frame to content size self.tableView.frame = CGRect(x: 0, y: 0, width: self.tableView.contentSize.width, height: self.tableView.contentSize.height); // set background to white //-->// self.tableView.backgroundColor = UIColor.white // make temp view with scroll view content size // a workaround for issue when image on ipad was drawn incorrectly let tempView = UIView(frame: CGRect(x: 0, y: 0, width: self.tableView.contentSize.width, height: self.tableView.contentSize.height)); //-->//tempView.backgroundColor = UIColor.white // save superview let tempSuperView = self.tableView.superview // remove scrollView from old superview self.tableView.removeFromSuperview() // and add to tempView tempView.addSubview(self.tableView) // render view // drawViewHierarchyInRect not working correctly tempView.layer.render(in: UIGraphicsGetCurrentContext()!) // and get image image = UIGraphicsGetImageFromCurrentImageContext()!; // and return everything back tempView.subviews[0].removeFromSuperview() tempSuperView?.addSubview(self.tableView) // restore saved settings self.tableView.contentOffset = savedContentOffset; self.tableView.frame = savedFrame; self.tableView.backgroundColor = savedBackgroundColor UIGraphicsEndImageContext(); return image } 

尝试这个希望它的工作:)

 tableView.backgroundColor = [UIColor clearColor]; tableView.opaque = NO; tableView.backgroundView = nil; 

这里你所看到的灰色是tableview的footerview,所以你可以使这个视图为零或者像这样初始化它

 tableView.tableFooterView = UIView() 

这可能会解决你的问题…