У меня есть UIScrollView
, у которого есть UIImageView
. Я хочу показать булавки на этом imageView
. Когда я добавляю булавки в качестве подвидов ImageView
, все отлично, за исключением того, что когда вы увеличиваете масштаб, преобразование масштаба происходит и на булавках. Я не хочу такого поведения и хочу, чтобы мои контакты оставались прежними.
Поэтому я решил добавить пины в другое представление, которое находится поверх ImageView и также является подвидом представления UIScrollView
. Идея здесь, если вы представляете, состоит в том, чтобы иметь слой, который нависает над картой и не масштабируется, но показывает булавки там, где я их рисую.
Булавка при добавлении в представление слоя не масштабируется, если масштабируется ImageView
. Однако тогда проблема заключается в том, что положение штифтов не соответствует исходному началу x/y, поскольку ImageView
имеет масштабное преобразование.
По сути, это пользовательская карта места с пинами. Я пытаюсь, чтобы булавки плавали, а не увеличивались и уменьшались над моим ImageView, но помню, где я их разместил, когда происходит увеличение.
Некоторый код:
scrollView = [[UIScrollView alloc] initWithFrame:viewRect];
scrollView.delegate = self;
scrollView.pagingEnabled = NO;
scrollView.scrollsToTop = NO;
[scrollView setBackgroundColor:[UIColor clearColor]];
scrollView.clipsToBounds = YES; // default is NO, we want to restrict drawing within our scrollview
scrollView.bounces = YES;
scrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;
imageViewMap = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]];
imageViewMap.userInteractionEnabled = YES;
viewRect = CGRectMake(0,0,imageViewMap.image.size.width,imageViewMap.image.size.height);
//viewRect = CGRectMake(0,0,2976,3928);
[scrollView addSubview:imageViewMap];
[scrollView setContentSize:CGSizeMake(viewRect.size.width, viewRect.size.height)];
iconsView = [[UIView alloc] initWithFrame:imageViewMap.frame];
[scrollView addSubview:iconsView];
Код для добавления Пина позже на какое-то событие.
[iconsView addSubview:pinIcon];
Я застрял в попытках выяснить, как заставить мои булавки зависать на карте, не двигаясь, когда происходит масштабирование.