Сценарий:Как проверить, что пользователь подключен к CGPath?
У меня есть набор CGPath
s. Они в основном просто линии (т. Е. Не закрытые формы). Они рисуются на экране в методе рисования UIView
.
Как проверить, подключен ли пользователь к одному из путей?
Вот что я работаю:
UIGraphincsBeginImageContext(CGPathGetBoundingBox(path));
CGContextRef g = UIGraphicsGetCurrentContext();
CGContextAddPath(g,path);
CGContextSetLineWidth(g,15);
CGContextReplacePathWithStrokedPath(g);
CGPath clickArea = CGContextCopyPath(g); //Not documented
UIGraphicsEndImageContext();
Так что я делаю создает контекст изображения, потому что она имеет функции мне нужно. Затем я добавляю путь к контексту и устанавливаю ширину линии до 15. Построение пути в этот момент создаст область щелчка, которую я могу проверить внутри, чтобы найти клики. Поэтому я получаю этот поглаженный путь, сообщая контексту, чтобы он превратил путь в поглаженный путь, а затем копировал этот путь обратно в другой CGPath. Позже, я могу проверить:
if (CGPathContainsPoint(clickArea,NULL,point,NO)) { ...
Все работало хорошо, но CGContextCopyPath
, будучи без документов, казалось, как плохая идея использовать по очевидным причинам. Существует также определенная проблема в создании CGContext
именно для этой цели.
Итак, есть ли у кого-нибудь идеи? Как проверить, был ли пользователь близко расположен (в данном случае, в пределах 15 пикселей) любой области на CGPath
?
В Swift 3.0: 'path.copy (strokingWithWidth: CGFloat ...)' – buildsucceeded