Разделите изображение на регионы - PullRequest
0 голосов
/ 24 июня 2011

У меня есть вид с изображением и под ним.ImageView содержит изображение человеческого тела.Теперь я хотел бы разделить изображение на три части: голова, грудная клетка и брюшная полость.Табличное представление также имеет три строки, каждая из которых соответствует разделам тела, упомянутым выше. Когда я выбираю или щелкаю любую из этих областей, я хочу прокрутить соответствующие строки таблицы и перейти к другому контроллеру представления, который будет служить подробным представлением.контроллер.Допустим, я выбрал голову, я хочу перейти на другую страницу, которая подробно объясняет голову.Я получаю тот же эффект, когда выбираю любую из строк.

1 Ответ

1 голос
/ 05 июля 2011

Вы можете легко сделать это, используя экземпляр UITapGestureRecognizer, прикрепленный к представлению изображения.Прежде всего, вам нужно установить UIImageView s userInteractionEnabled на YES.После подключения распознавателя жестов вы должны разрешить касание в его области в обработчике жестов.

- (void)tap:(UITapGestureRecognizer *)tapGesture {
    CGPoint locationInView = [tapGesture locationInView:tapGesture.view];

    /* Resolve the location here */
}

Теперь разрешение основано на том, как вы будете определять регионы.Если они просто прямоугольники, объявите три CGRect объекта в качестве переменных экземпляра и установите их соответствующим образом и сделайте что-то вроде этого,

if ( CGRectContainsPoint(headRect, locationInView) ) {
    /* It's a head, load its view controller */
} else if ( ... ) {
    ....

Или, если регионы немного сложнее, используйте UIBezierPath или CGPathRef.

...