Я хочу реализовать пользовательский вид выноски для iOS, который показывает на правой стороне штыря, который получает постукивание. То, как я закончил, похоже на то, как this учебник.
В основном я добавляю subview к представлению аннотации в mapView: didSelectAnnotationView: обратный вызов делегата (второй аргумент представляет собой аннотацию). Он показывает, как мне бы хотелось, НО он не может получать события касания. Я понял, что это (, вероятно,), потому что UIView, который я добавляю, выходит из фрейма представления аннотации, если я нажимаю край, который все еще находится в кадре, он распознается, но больше нигде. Я еще не нашел другого способа сделать что-то, кроме этого, и я не знаю, как заставить прикосновение работать повсюду в UIView.
Я попытался сделать рамку аннотации более крупным, но она также делает вывод (изображение) больше, и это не путь.
Любые идеи?iOS MapKit пользовательская выноска на стороне штыря
0
A
ответ
0
Не добавляйте подзаголовок аннотации, а не подкласс MKAnnotationView и реализуйте необходимые методы. Если вам нужен полный контроль над рисунком, просто переопределите -drawRect:
. Помните, что MKAnnotationView - это особый класс, который немного похож на UITableViewCell на то, что он имеет специальную обработку для того, чтобы быть поставленным в очередь и отложенным, и вы должны использовать его напрямую. Вот пример, чтобы начать работу.
- (id)initWithAnnotation:(id<MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier];
if (self) {
[self commonInit];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
[self commonInit];
}
return self;
}
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self commonInit];
}
return self;
}
- (id)init
{
self = [super init];
if (self) {
[self commonInit];
}
return self;
}
- (void)commonInit
{
self.frame = CGRectMake(0, 0, 40, 40);
self.backgroundColor = [UIColor clearColor];
self.canShowCallout = YES;
}
- (void)drawRect:(CGRect)rect
{
//// Oval Drawing
CGRect imageBox = CGRectMake(5, 5, 25, 25);
UIBezierPath* ovalPath = [UIBezierPath bezierPathWithOvalInRect:imageBox];
[[UIColor clouds] setFill];
[ovalPath fill];
[[UIColor clouds] setStroke];
ovalPath.lineWidth = 6;
[ovalPath stroke];
CGFloat radius = imageBox.size.width/2;
UIImage *img = [UIView rasterizedStatusImageForCheckpoint:self.checkpoint withSize:imageBox.size];
img = [img makeRoundedImage:img radius:radius];
[img drawInRect:imageBox];
}
Смежные вопросы
- 1. Пользовательская выноска - ViewDidLoad - Swift
- 2. Mapbox: Пользовательская выноска аннотации
- 3. пользовательская выноска в Mkmapview в ios
- 4. Быстрая пользовательская выноска для MKMapView
- 5. Пользовательская выноска аннотации, не показывающая MKAnnotation?
- 6. Настройка выноска Mapbox с HTML на iOS
- 7. Пользовательская выноска MKMapView не отвечает на события касания
- 8. Пользовательская проверка на стороне клиента
- 9. Пользовательская проверка на стороне клиента
- 10. Как создать кнопку выноска MapKit, выполнив команду segue?
- 11. Phonegap 2.7 - IOS MapKit
- 12. Compute Heading iOS mapkit
- 13. ios MapKit, по пути
- 14. OpenCv - конфликт iOS MapKit
- 15. Пользовательская карта с использованием iPhone MapKit
- 16. iOS 5 MapKit, MKPlacemark, приложение iOS 4.3 на iOS 5
- 17. Пользовательская проверка не срабатывает на стороне клиента
- 18. Пользовательская агрегация на стороне клиента в jqGrid
- 19. ASP.Net Пользовательская проверка на стороне клиента
- 20. jquery datatables, пользовательская сортировка на стороне сервера
- 21. chronoforms v5 пользовательская проверка на стороне сервера
- 22. Kendo Grid Пользовательская фильтрация на стороне клиента
- 23. iOS mapview: настройка положения настраиваемого выноска
- 24. iOS MapKit здание на карте парка
- 25. Как найти компанию на карте (mapkit iOS)
- 26. ios Mapkit: фиксировать аннотацию на середине карты
- 27. Crash with MapKit на iOS 6
- 28. Поиск адресов с помощью MapKit на iOS
- 29. Функция Swift/iOS MapKit на MKnnotation tap
- 30. iOS: реализация на стороне сервера Objective C