Я бы создал подкласс UIView (например, DOMImageMapView
) со списком CGPathRef
или UIBezierPath
экземпляров, связанных с ним.
В DOMImageMapView
реализации drawRect:
, вы должны нарисовать изображение, а затем выполнить итерацию по каждому экземпляру пути и заполнить его, используя CGContextFillPath()
или -[UIBezierPath fill]
.
. Для тестов попадания вы должны реализовать touchesEnded:withEvent:
(или аналогичный) и протестировать каждыйпуть через CGPathContainsPoint()
или -[UIBezierPath containsPoint:]
.Если один из путей возвращает YES
, вызовите метод-делегат, например imageMapView:didSelectArea:
.
Ваш UITableViewController
(или UIViewController
с UITableView
в нем) создаст DOMImageMapView
и установитсам как delegate
.При касании области контроллер получит обратный вызов и сможет соответствующим образом обработать событие.