2014-10-09 3 views
0

Я знаю, что это действительно «макро» вопрос, но я не знаю, с чего начать.iOS: Интерактивный UIImageView

У меня есть изображение (.png), которое содержит много прямоугольников (это карта событий). Пользователь может увеличить/уменьшить изображение. Я хочу добавить некоторое взаимодействие для карты. Когда пользователь прикасается к прямоугольнику, я хочу определить, какой прямоугольник он есть, и показать метку с именем.

Я знаю, как получить X, Y, но проблема заключается в том, чтобы вычислить площадь прямоугольника, и когда пользователь увеличил изображение, я потерял исходный X/Y.

Извините за плохой вопрос, надеюсь, что кто-то может мне помочь.

Моя карта это загружается следующим образом:

UIImage *image = [UIImage imageNamed:@"event-map.png"]; 
CGSize imageSize = image.size; 
self.mapImage.frame = CGRectMake(0.0, 0.0, imageSize.width, imageSize.height); 
self.mapImage.image = image; 
self.scrollView.contentSize = imageSize; 
self.scrollView.zoomScale = 0.29; 
+0

Hi Lucks, вы правы в отношении «Макро» :-) Таким образом, вы могли бы решить, какой пиксель изображения таблицы, на который было нажато, но что тогда? Насколько вы показали, у вас нет способа превратить это в личность таблицы? Я думаю, вам понадобится доступ к этой информации. Вместо изображения вы могли бы описать таблицы в файле plist, а затем, например, настроить 'UIView' для каждой таблицы. Затем, когда они прослушиваются, вы можете обнаружить это. – Benjohn

+0

Привет @Benjohn спасибо за ваш ответ. У вас есть какой-либо учебник или ссылка на ссылку для его разработки? –

ответ

0

На ваш взгляд прямоугольника, вы можете использовать:

[self.window convertPoint:myPoint toView:self] 

Это превратит вашу точку в вашем пространстве вида. После этого вы можете рассчитать, попадаете ли вы в прямоугольник на основе границ прямоугольника в вашем представлении против конвертированной точки.

Если вы не знаете границ прямоугольников в своем изображении, но все они имеют очень специфический цвет пикселов, вы можете использовать выборку данных вашего изображения и сравнить цвет пикселя попадания с вашим ожидаемым цветом.

+0

У меня есть изображение, которое содержит много прямоугольников. Как я могу использовать ваш код? –

+0

Я добавил часть своего кода, который загружает карту –

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