Ich versuche eine Ansicht zu erstellen, die aus mehreren 3D-Würfeln besteht, die aus einer mittleren Perspektive der enthaltenden Ansicht betrachtet werden.Verstehen der Perspektive in 3D-Kern-Animation transformieren
Wenn ich eine Würfelansicht als direkte Unteransicht der Containeransicht einstelle und dann die Perspektive wie folgt einstelle:
Die 3D-Perspektive funktioniert wie erwartet. Wenn ich jedoch die Cube-Ansicht zuerst zu einer innercontainerView hinzufüge und diese dann zur übergeordneten Containeransicht hinzufüge, geht die Perspektive verloren. I created a playground, um mein Problem zu veranschaulichen.
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)
Ich versuche, die gleiche Perspektive in dem rechten Würfel im linken Würfel gezeigt zu erstellen. Warum also, wenn ich die Zwischenansicht hinzufüge, verliere ich die Perspektive?