Я хочу изменить перспективу UIView
, которая находится в моем Viewcontroller
. Я думаю, что мне нужно преобразовать этот слой UIView, но я не знаю, как это сделать.
Я пробовал следующий код, но он не работает
UIView *myView = [[self subviews] objectAtIndex:0];
CALayer *layer = myView.layer;
CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
rotationAndPerspectiveTransform.m34 = 1.0 / -500;
rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, 45.0f * M_PI / 180.0f, 0.0f, 1.0f, 0.0f);
layer.transform = rotationAndPerspectiveTransform;
Я также пробовал со следующим кодом:
-(void)drawRect:(CGRect)rect {
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGAffineTransform transform = CGAffineTransformIdentity;
transform.b = -0.1;
transform.a = 0.9;
CGContextConcatCTM(ctx,transform);
// do drawing on the context
}
и это тоже:
CALayer *layerA = [[self.view.layer sublayers] objectAtIndex:0];
layerA.transform = CATransform3DConcat(layerA.transform, CATransform3DMakeRotation(DEGREES_TO_RADIANS(45),1.0,0.0,0.0)
Ни один из них не работал. Как я могу изменить перспективу UIView
?
Другими словами, я приведу пример. Представьте этот пример кода, круговая диаграмма вращения образец круговой диаграммы вращения. Я хотел бы изменить перспективу, по осям x или z.