自定义Google Maps SDK标记的信息窗口,Swift 2.0

3

我正在尝试实现这个(https://www.youtube.com/watch?v=ILiBXYscsyY)Objective-C的自定义InfoWindow教程到Swift 2.0中。我已经尝试通过混合使用Objective-C和Swift代码来实现,但是翻译失败了。

- (UIView *) mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker {
    CustomInfoWindow *infoWindow = [[[NSBundle MainBundle] loadNibNamed:@"InfoWindow" owner:self options:nil] objectAtIndex:0];
    infoWindow.name.text = @"Syndey Opera House";
    infoWindow.address.text = @"Bennelong Point, Sydney";
    infoWindow.photo.image = [UIImage imageNamed:@"SydneyOperaHouseAtNight"];

    return infoWindow;
}

将其翻译成Swift。该教程的此部分可以在视频的3:07找到。

我希望能有人帮助将此教程翻译成Swift 2.0,或者如果有人知道一个好的Swift 2.0教程,那将不胜感激。

2个回答

4

这是Swift3的代码:

func mapView(_ mapView: GMSMapView, markerInfoWindow marker: GMSMarker) -> UIView? {
    let infoWindow = Bundle.main.loadNibNamed("InfoWindow", owner: self, options: nil)?.first as! CustomInfoWindow
    infoWindow.name.text = "Sydney Opera House"
    infoWindow.address.text = "Bennelong Point Sydney"
    infoWindow.photo.image = UIImage(named: "SydneyOperaHouseAtNight")
    return infoWindow
}

3
以下是上述代码的 Swift 代码实现:
func mapView(mapView: GMSMapView!, markerInfoWindow marker: GMSMarker!) -> UIView! {
         let infoWindow = NSBundle.mainBundle().loadNibNamed("InfoWindow", owner: self, options: nil).first as! CustomInfoWindow
        infoWindow.name.text = "Sydney Opera House"
        infoWindow.address.text = "Bennelong Point Sydney"
        infoWindow.photo.image = UIImage(named: "SydneyOperaHouseAtNight")
        return infoWindow
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接