2012-06-27 4 views
0

У меня есть UIScrollview с UIImageview внутри, показывающим план этажа. У меня также есть UIButton в scrollview, который действует как маркер/вывод.Сохранение относительного UIButton при масштабировании

Я реализовал масштабирование с ущемлением/двойным нажатием на изображение, но элемент UIButton, очевидно, не перемещается, когда изображение прокручивается и/или масштабируется.

Я попытался следующий код, чтобы попытаться resposition кнопку, когда увеличение завершено:

[myButton setFrame:CGRectMake(
          (myButton.frame.origin.x - myButton.frame.size.width/2) * _scrollView.zoomScale, 
          (myButton.frame.origin.y - myButton.frame.size.height/2) * _scrollView.zoomScale, 
          myButton.frame.size.width, myButton.frame.size.height)]; 

Это перемещает кнопку в верхнем левом углу.

У кого-нибудь есть представление о том, что я должен делать, чтобы кнопка была относительно изображения (так же, как маркер на карте Google).

+0

Вы хотите, чтобы кнопка увеличивала (а не просто двигалась)? Вы пытались добавить кнопку в качестве подзаголовка вашего UIImageView? (Настройка разума автоматически регулирует изображения) –

ответ

0

Хорошо хорошо это была решена следующим образом:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setBackgroundImage:[UIImage imageNamed:@"Marker.png"] forState:UIControlStateNormal]; 
button.frame = CGRectMake(640.0, 230.0, 30.0, 46.0); 
[button addTarget:self action:@selector(aMethod:)forControlEvents:UIControlEventTouchUpInside]; 
[self.imageView addSubview: button]; 
self.imageView.userInteractionEnabled = YES; 

основном путем добавления кнопки на ImageView непосредственно, а затем позволяет userInteraction, я был в состоянии получить все необходимые функции.

0

Недавно я ответил question very similar to this. Если вам не требуется обновление в реальном времени (только обновление при завершении масштабирования), вы должны использовать метод, описанный здесь.

+0

Нет Мне не нужна кнопка для увеличения - она ​​может оставаться одного размера, просто должна быть относительной (т. Е. Если она указывает на область B на плане этажа, всегда нужно указывать там , независимо от уровня масштабирования). Итак, если я добавлю кнопку в UIImageView, она сделает это автоматически? – user892028

+0

Идея состоит в том, что вы не должны напрямую иметь свой UIScrollView собственный UIButton. Вместо этого, у супервизора есть кнопка, а затем вычислите точку, в которую вы хотите, чтобы кнопка переместилась. – Dustin

+0

Ну, я только что добавил кнопку imageView вместо scrollView, и он делает все относительное позиционирование для меня автоматически! Brilliant! – user892028

Смежные вопросы