【发布时间】:2017-08-31 11:32:29
【问题描述】:
我有以下代码:
func takeScrollScreenshot() -> UIImage? {
let scrollview: UIScrollView = self as! UIScrollView
UIGraphicsBeginImageContext(scrollview.contentSize)
let savedContentOffset = scrollview.contentOffset
let savedFrame = scrollview.frame
scrollview.contentOffset = CGPoint.zero;
scrollview.frame = CGRect(x: CGFloat(0),
y: CGFloat(0),
width: scrollview.contentSize.width,
height: scrollview.contentSize.height);
scrollview.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext();
scrollview.contentOffset = savedContentOffset
scrollview.frame = savedFrame
UIGraphicsEndImageContext()
return image
}
层次结构是这样的:View -> ScrollView -> View --> 其余视图
scrollview截图,问题是为什么底部没有上色。
内部视图的屏幕截图。
应该是什么样子
【问题讨论】:
-
您的所有视图是滚动视图的子视图,还是您拥有包含所有视图的容器视图?
-
是这样的:View -> ScrollView -> View --> 剩余的视图
-
然后尝试截取 View 的屏幕截图(scrollview 的子视图)并检查
-
我会尝试,但奇怪的是相同的功能只是在这个屏幕上失败
-
是的! .你的代码没有问题。即使为我工作,这也是我告诉你使用 View 的原因