Свойство UIView Transform для перекоса круга, чтобы придать ему трехмерный вид

Я использую MKMapView с добавлением MKCircleView, Наследуется от UIViewтак что я могу использовать свойство transform.

Он выглядит довольно плоским без преобразования, и выглядит странно рядом с булавкой, так как это 3D:

Я бы хотел, чтобы это выглядело так:

Я пытался играть с примерами настройки CATransform3DRotate но математика не является моим умением, поэтому ничто не приблизилось даже близко.

Как я могу это сделать?

1 ответ

Я бы подделал это с 2d масштабированием, используя

CGContextScaleCTM

Вы можете сделать это с каждым UIView:

UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 5)];
CGAffineTransform scale = CGAffineTransformMakeScale(1.0f, 0.6f);
[v setTransform:scale];

Масштабируйте по коэффициентам (1,0, 0,6) и все готово!

Если это не помогает, вам следует сделать немного больше, создав собственное наложение карты, как описано в этом руководстве

Удачи!

Другие вопросы по тегам