我试图在iOS7应用程序中创建MKMapView的快照,就像之前iOS版本推荐的那样:
- (UIImage*) renderMapViewToImage
{
UIGraphicsBeginImageContextWithOptions(mapView.frame.size, NO, 0.0);
[mapView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
Run Code Online (Sandbox Code Playgroud)
但是,返回的图像是一个黑色矩形,顶部有一个蓝色的当前位置点.我也试过使用mapView的不同子层,但结果总是一样的.
有谁知道如何在iOS7中拍摄MKMapView快照?
我试图用MKMapSnapshotter的startWithCompletionHandler方法获取地图视图的快照.我想将自定义图钉注释视图添加到快照.并且我的自定义注释视图中有一个标签.所以当我正在拍摄快照时,我无法显示该标签.这是代码:
let snapshotter = MKMapSnapshotter(options: options)
snapshotter.startWithCompletionHandler() {
snapshot, error in
if error != nil {
completion(image: nil, error: error)
return
}
let image = snapshot.image
let pin = MKPinAnnotationView(annotation: nil, reuseIdentifier: "") // I want to use custom annotation view instead of MKPinAnnotationView
let pinImage = UIImage(named: "pinImage")
UIGraphicsBeginImageContextWithOptions(image.size, true, image.scale);
image.drawAtPoint(CGPointMake(0, 0))
var homePoint = snapshot.pointForCoordinate(coordinates[0])
pinImage!.drawAtPoint(homePoint)
pinImage!.drawAtPoint(snapshot.pointForCoordinate(coordinates[1]))
let finalImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
completion(image: finalImage, error: nil)
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,drawAtPoint是UIImage的功能.我尝试使用UIImageView然后我将标签添加到imageView作为subView但我不能使用drawView与imageView,所以我的问题是我无法添加标签到mapView快照.
你可以在链接上看到我的意思:https: //www.dropbox.com/s/83hnkiqi87uy5ab/map.png?dl = 0
谢谢你的建议.
我在使用swift在表格视图单元格中显示谷歌地图时遇到了问题.我想基于此显示检入(纬度和经度)我想在表格视图中显示谷歌地图.如果没有可用的位置意味着我将获得null,我将从服务器获得经度和纬度.所以,在一个场景中我得到了正确的,但在重新加载顶级时,我正在获取地图的时间和地点,他们的纬度和经度也是空的.请指导我.
我想使用SwiftUI View 在 macOS (Ventura) 上打印标签之类的东西。但这会导致一张白纸:
func startPrinting() {
let printView = NSHostingView(rootView: Text("I want to print"))
printView.frame.size = CGSize(width: 200, height: 200)
let printInfo = NSPrintInfo()
printInfo.topMargin = 0
printInfo.leftMargin = 0
printInfo.bottomMargin = 0
printInfo.rightMargin = 0
let printOperation = NSPrintOperation(view: printView, printInfo: printInfo)
printOperation.run()
}
Run Code Online (Sandbox Code Playgroud)
当我切换Text到时TextField,它被打印,但我不知道为什么。
如何打印SwiftUI视图?
swift ×3
ios ×2
appkit ×1
google-maps ×1
ios7 ×1
macos ×1
mapkit ×1
mkmapview ×1
objective-c ×1
swiftui ×1
uitableview ×1
xib ×1