Я хотел бы реализовать и спроектировать карту для пола здания в моем приложении. Прежде чем начать, я хотел бы получить несколько советов.
Я планирую использовать UIBezierPath для рисования фигур. Каждый UIBezierPath будет представлять магазин на моей карте.
Вот иллюстрация ( map_with_UIBezierPath )
Моя структура кода следующая: у меня есть UIViewController и UiView. В методе "viewDidLoad" UIViewController я создаю экземпляр UIView, а в методе "drawRect" UIView я рисую фигуры, как показано ниже (UIBezierPathExtension наследуется от UIBezierPath):
- (void)drawRect:(CGRect)rect {
context = UIGraphicsGetCurrentContext();
[[UIColor grayColor] setFill];
[[UIColor greenColor] setStroke];
UIBezierPathExtension *aPath = [[UIBezierPathExtension alloc] init];
aPath.pathId = 1;
[aPath moveToPoint:CGPointMake(227,34.25)];
[aPath addLineToPoint:CGPointMake(298.25,34.75)];
[aPath addLineToPoint:CGPointMake(298.5,82.5)];
[aPath addLineToPoint:CGPointMake(251,83)];
[aPath addLineToPoint:CGPointMake(251,67.5)];
[aPath addLineToPoint:CGPointMake(227.25,66.75)];
[aPath closePath];
aPath.lineWidth = 2;
[aPath fill];
[aPath stroke];
[paths addObject:aPath];
UIBezierPathExtension* aPath2 = [[UIBezierPathExtension alloc] init];
aPath2.pathId = 2;
[aPath2 moveToPoint:CGPointMake(251.25,90.5)];
[aPath2 addLineToPoint:CGPointMake(250.75,83.25)];
[aPath2 addLineToPoint:CGPointMake(298.5,83)];
[aPath2 addLineToPoint:CGPointMake(298.5,90.25)];
[aPath2 closePath];
aPath2.lineWidth = 2;
[aPath2 fill];
[aPath2 stroke];
[paths addObject:aPath2];
...
}
Я также реализовал жест панорамирования и пинча в UIViewController.
Теперь я спрашиваю, как я могу взаимодействовать с каждой отдельной формой. Я хотел бы обнаружить одно нажатие на него, изменить его цвет и отобразить меню, подобное , которое на выбранной фигуре.
Может кто-нибудь сказать мне правильное направление?
Спасибо заранее