1
포함 된 뷰의 중심 관점에서 본 여러 3D 큐브로 구성된 뷰를 만들려고합니다.3D 코어 애니메이션에서 원근감 변환 이해
컨테이너보기의 직접 하위보기로 큐브보기를 설정 한 다음 다음과 같이 관점을 설정합니다.
var perspective = CATransform3DIdentity
perspective.m34 = -1.0/250
containerView.layer.sublayerTransform = perspective
3d 투시 변환은 예상대로 작동합니다. 그러나 먼저 큐브 뷰를 innerContainerView에 추가 한 다음 부모 컨테이너 뷰에 추가하면 원근감이 손실됩니다. 내 created a playground 내 문제를 설명합니다.
let containerView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 667.0, height: 375.0))
containerView.backgroundColor = UIColor.grayColor()
XCPlaygroundPage.currentPage.liveView = containerView
let green = UIColor.greenColor()
let blue = UIColor.blueColor()
let red = UIColor.redColor()
let purple = UIColor.purpleColor()
let yellow = UIColor.yellowColor()
let orange = UIColor.orangeColor()
var perspective = CATransform3DIdentity
perspective.m34 = -1.0/250
containerView.layer.sublayerTransform = perspective
let cubeView1 = CubeView(frontColor: green, backColor: blue, topColor: red, rightColor: purple, bottomColor: yellow, leftColor: orange)
cubeView1.frame = CGRectMake(50, 50, 100, 100)
let innerContainerView = UIView(frame: CGRectMake(0, 100, 200, 200))
innerContainerView.backgroundColor = UIColor.lightGrayColor()
containerView.addSubview(innerContainerView)
innerContainerView.addSubview(cubeView1)
let cubeView2 = CubeView(frontColor: green, backColor: blue, topColor: red, rightColor: purple, bottomColor: yellow, leftColor: orange)
cubeView2.frame = CGRectMake(400, 200, 100, 100)
containerView.addSubview(cubeView2)
나는 왼쪽 큐브의 오른쪽 큐브에 표시된 동일한 관점을 만들려고 해요. 그렇다면 나는 중간 시점을 추가 할 때 왜 관점을 잃을까요?