【发布时间】:2017-09-10 20:24:11
【问题描述】:
我想从 MKMarkerAnnotationView 获取 UIImage,但是使用以下代码截断了图像(在顶部和底部,请参见屏幕截图)
let newAnnotation = SimpleAnnotation(sourceCoordinate: annotation.coordinate, sourceTitle: "Hello", sourceSubtitle: "world")
let pinAnnotation = MKMarkerAnnotationView(annotation: newAnnotation, reuseIdentifier: "Test")
pinAnnotation.markerTintColor = UIColor.red
pinAnnotation.glyphText = "1"
pinAnnotation.animatesWhenAdded = false
pinAnnotation.glyphTintColor = UIColor.white
pinAnnotation.titleVisibility = .hidden
pinAnnotation.subtitleVisibility = .hidden
UIGraphicsBeginImageContextWithOptions(pinAnnotation.bounds.size, false, 0.0)
pinAnnotation.drawHierarchy(in: CGRect(x:0,
y:0,
width:pinAnnotation.bounds.width,
height:pinAnnotation.bounds.height),
afterScreenUpdates: true)
let snapshotImageFromMyView = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
知道为什么会被截断吗?在 Xcode 调试器中,我可以看到图像已经在 pinAnnotation 中被截断(在我使用 UIGraphics... 获取 UIImage 之前)
【问题讨论】:
-
您假设图像的大小限制为引脚注释边界的大小。也许那不是真的。图像可以超出描绘它的视图范围。
-
然后,知道如何继续获取完整图像吗?
-
我建议您尝试在更大的环境中绘制,看看是否有帮助。
标签: ios swift uiimage mapkit mkannotationview