2013-10-25 88 views
-1

我需要做一個IPhone應用程序,我應該實現一個MKMapView和一個UISearchBar。如果我在UISearchBox中輸入地點的名稱,則應返回相關地點,並且在我們觸摸地點時必須執行地圖註記。我需要學習實施它們的所有概念是什麼?我在哪裏可以學習有關「MKMapView」和相關概念的概念?需要建議學習MKMapView和UISearchBar。我需要學習的所有概念是什麼?我在哪裏可以學習這些概念?

請在您的意見中建議我一些鏈接。以編程方式解釋而不使用Interface Builder的頁面。

在此先感謝。

+0

我從來沒有實現兩者的UISearchBar還有的MKMapView。這足以學習嗎? https://developers.google.com/maps/documentation/ios/ https://developers.google.com/maps/documentation/ios/reference/index https://developers.google.com/maps/documentation/geocoding /?csw = 1 –

+0

閱讀ios參考,ios用戶體驗概念,尋找教程或示例項目,以及最重要的一些代碼並嘗試一下 – stefanB

+0

@stefan:感謝這個想法,我試過搜索,但一切都是概念性的,你可以分享任何解釋編程Plz的鏈接嗎? –

回答

0

您不需要使用Google地圖SDK。 使用MapKit.framwork作爲蘋果自己的庫。 如果您沒有具體的理由使用Google Map iOS SDK更好地瞭解MapKit.framework。當我們比較這兩個框架時有利有弊。但由於您處於初始階段,我建議使用MapKit.framwork。

http://www.raywenderlich.com/21365/

你可以學習使用下面的鏈接的UISearchBar的基礎。

http://programmerstube.com/mobile/objective-c-tutorial/objective-c-iphone-programming-tutorial-uisearchbar

+0

謝謝。你能建議一些不使用XIB的鏈接嗎?我不應該使用Xib :( –

0

我已經寫了簡單的例子。嘗試使用這一個。

  • (無效)viewDidLoad中 { [超級viewDidLoad中];

    mapView = [[MKMapView alloc] initWithFrame:self.view.frame]; 
    mapView.delegate = self; 
    mapView.showsUserLocation = YES; 
    mapView.zoomEnabled = YES; 
    mapView.scrollEnabled = YES; 
    mapView.rotateEnabled = YES; 
    // mapView.pitchEnabled = YES; 
    [self moveMapViewToLocation:mapView.userLocation.location]; 
    [self zoomMapViewToLocation:mapView.userLocation.coordinate]; 
    [self.view addSubview:mapView]; 
    

    } - (無效)zoomMapViewToLocation:(CLLocationCoordinate2D)位置 { 如果(location.longitude < = -180 || location.latitude < = -180) { 回報; }

    MKCoordinateRegion region; 
    MKCoordinateSpan span; 
    
    span.latitudeDelta = 0.004; 
    span.longitudeDelta = 0.004; 
    
    region.span=span; 
    region.center=location; 
    
    [mapView setRegion:region animated:TRUE]; 
    [mapView regionThatFits:region]; 
    

    }

    - (無效)moveMapViewToLocation:(CLLocation *)位置 { MKCoordinateRegion區域;

    region.span = mapView.region.span; 
    region.center = location.coordinate; 
    
    [mapView setRegion:region animated:TRUE]; 
    [mapView regionThatFits:region]; 
    

    }

    • (無效)的LocationManager:(CLLocationManager *)經理didChangeAuthorizationStatus:(CLAuthorizationStatus)狀態 {

    }

    - (空)的MapView :(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation { [self zoomMapViewToLocation:userLocation。座標]; }

    • (無效)的MapView:(的MKMapView *)MV didAddAnnotationViews:(NSArray的*)觀看 { 爲(MKAnnotationView *在視圖annotationView) { 如果(annotationView.annotation == mv.userLocation ) { [self zoomMapViewToLocation:mv.userLocation.location.coordinate]; } } }

    • (無效)onGestureEventFire:(ID)發送方 { 如果(mapView.mapType == MKMapTypeStandard) mapView.mapType = MKMapTypeSatellite; else mapView.mapType = MKMapTypeStandard; } @end