728x90
* 주의 사항
네이버 지도 API 사용시 메모리 해제가 되지 않는 문제가 있으니 주의 필요!
마커 위 정보창
기본
NMFInfoWindow *infoWindow = [NMFInfoWindow new];
NMFInfoWindowDefaultTextSource *dataSource = [NMFInfoWindowDefaultTextSource dataSource];
infoWindow.dataSource = dataSource;
// 내가 생성해둔 마커 사용
NMFMarker * marker = [NMFMarker new];
if (marker.infoWindow == nil) {
// infoWindow를 marker에 넣어 open
[infoWindow openWithMarker:marker];
} else {
// infoWindow 닫아줌
[marker.infoWindow close];
}
커스텀 정보창
1. 원하는 UI의 정보창 CustomInfoWindowView.xib 생성
2. 커스텀 정보창 그리기
// CustomInfoWindowView.h
@interface CustomInfoWindowView : UIView
@property (weak, nonatomic) IBOutlet UIImageView *img;
@property (weak, nonatomic) IBOutlet UILabel *textLb;
@end
@interface CustomInfoWindowDataSource : NSObject <NMFOverlayImageDataSource>
@end
// CustomInfoWindowView.m ---------------------------------------------
@implementation CustomInfoWindowView
@end
@implementation CustomInfoWindowDataSource {
CustomInfoWindowView *rootView;
}
- (UIView *)viewWithOverlay:(NMFOverlay *)overlay {
NMFInfoWindow * infoWindow = overlay;
if (rootView == nil) {
rootView = [[[NSBundle mainBundle] loadNibNamed:@"CustomInfoWindowView" owner:self options:nil] firstObject];
}
rootView.textLb.text = [infoWindow.marker.userInfo objectForKey:@"title"];
[rootView.textLb sizeToFit];
[rootView setFrame:CGRectMake(0, 0, rootView.frame.size.width, rootView.frame.size.height)];
[rootView layoutIfNeeded];
return rootView;
}
@end
3. 사용
// marker와 infoWindow는 하나의 세트!!
// 즉, marker를 세팅할 때 infoWindow의 데이터도 infoWindow의 view가 그려지기 전에 세팅이 되어야 한다.!!!
NMFInfoWindow *infoWindow = [NMFInfoWindow new];
CustomInfoWindowDataSource *dataSource = [CustomInfoWindowDataSource new];
infoWindow.dataSource = dataSource;
// infoWindow 데이터 세팅
내마커.userInfo = @{@"title":@"정보창 내용"};
if (내마커.infoWindow == nil) {
// infoWindow를 marker에 넣어 open
[infoWindow openWithMarker:내마커];
} else {
// infoWindow 닫아줌
[내마커.infoWindow close];
}
참고:
NMFOverlayImageDataSource Protocol Reference
NMFOverlayImageDataSource @protocol NMFOverlayImageDataSource 지도에서 사용할 수 있는 이미지 리소스를 만들기 위한 UIView를 반환할 수 있는 프로토콜. 이 프로토콜을 구현할 경우, 오버레이의 상태에 따라서 U
navermaps.github.io
https://navermaps.github.io/ios-map-sdk/guide-ko/5-3.html
정보 창 · NAVER Map iOS SDK
No results matching ""
navermaps.github.io
https://github.com/navermaps/ios-map-sdk
GitHub - navermaps/ios-map-sdk: 네이버 지도 iOS SDK 데모 앱
네이버 지도 iOS SDK 데모 앱. Contribute to navermaps/ios-map-sdk development by creating an account on GitHub.
github.com
728x90
'iOS > iOS' 카테고리의 다른 글
애플 리젝 (4) | 2023.03.03 |
---|---|
UINavigationViewController (with. Coordinator Pattern) (0) | 2023.03.02 |
keyboard 높이 (1) | 2023.02.01 |
URL Scheme (0) | 2023.01.26 |
present된 ViewController에 push (0) | 2023.01.26 |
댓글