5

私は iOS プログラミングの初心者で、COCOA Touch についてほとんど知識がありません。ユーザーが前の画面に戻るオプションを提供するために、Googleマップの下部にある画面にボタンを追加しようとしています。UIButtonのサブクラスであることはわかっていUIViewます。そのクラスのサブビューにすることで、ビューにボタンを表示させることができます。以前は、iOS はデフォルトで Google マップを使用していましMKMapViewた。地図上にボタンやテキスト ボックスが表示されるアプリのスクリーン ショットを示す例を本やインターネットで見たことがあります。しかし、インターフェイスビルダーでボタンをドラッグするだけでは役に立ちません。

MKMapView 上のテキスト ボックス

これが私のコードです:

ViewController.h

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <GoogleMaps/GoogleMaps.h>


@interface ViewController : UIViewController 

@property (weak, nonatomic) IBOutlet UIButton *btn;


@end

ViewController.m

#import "ViewController.h"
#import <MapKit/MapKit.h>
#import <GoogleMaps/GoogleMaps.h>
#import <CoreLocation/CoreLocation.h>


@interface ViewController ()

@end

@implementation ViewController
{
    GMSMapView *mapView_;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (void)loadView
{
    CLLocationManager *locationManager = [[CLLocationManager alloc] init];
    locationManager.distanceFilter = kCLDistanceFilterNone;

    locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
    [locationManager startUpdatingLocation];

    //Latitude and longitude of the current location of the device.
    double lati = locationManager.location.coordinate.latitude;
    double longi = locationManager.location.coordinate.longitude;
    NSLog(@"Latitude = %f", lati);
    NSLog(@"Longitude = %f", longi);

    CLLocation *myLocation = [[CLLocation alloc] initWithLatitude:lati longitude:longi];

    // Create a GMSCameraPosition that tells the map to display the coordinate

    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:lati
                                                            longitude:longi
                                                                 zoom:11.5];

    mapView_ = [GMSMapView mapWithFrame:[[UIScreen mainScreen] bounds] camera:camera];
    mapView_.myLocationEnabled = YES;
    self.view = mapView_;

    // Creates a marker in the center of the map.
    GMSMarker *marker = [[GMSMarker alloc] init];
    marker.position = CLLocationCoordinate2DMake(lati, longi);
    marker.title = @"It's Me";
    marker.snippet = @"My Location";
    marker.map = mapView_;

    [mapView_ addSubview:_btn];
    [mapView_ bringSubviewToFront:_btn];

}

@end

どのようにすればよいか教えてください。

ありがとう。

4

2 に答える 2

6

現在のビューで通常の UI 構築を行い、 (DON'T do )のGMSMapViewas subview(at index0) を追加します。self.viewself.view = mapView;

重要なコードは次のとおりです。

mapView = [GMSMapView mapWithFrame:self.view.bounds camera:camera];
[self.view insertSubview:mapView atIndex:0];

マップ ビューをindex0 に挿入すると、残りのオブジェクトが前に設定されます。

于 2013-05-21T05:01:26.737 に答える