CATransform3D是否会破坏图层顺序?

时间:2015-04-08 06:29:49

标签: ios objective-c xcode swift

基本上我想构建类似iOS7 safari选项卡切换器中的scrollView。我使用CATransform3D来获得倾斜的感觉。然而,当我使用变换时,图层只是没有按正确的顺序显示。(它们在变换之前的顺序正确,看起来像顺序完全颠倒。背面层跳到前面)。我该如何解决这个棘手的问题? 顺便说一句,在我的情况下,superView.bringSubViewToFront不起作用。

我的代码:

     //Create imageView
    ...
    scroller.addSubview(imageView)
    let layer = imageView.layer
     //Set shadow
    layer.shadowOpacity = 0.2
    layer.shadowRadius = 2
    layer.shadowOffset = CGSizeMake(6, -10)

      //Transform, if without following code the layer order is correct
    var transform = CATransform3DIdentity
    transform.m34 = 0.0009
    let radiants = 0.11*M_PI
    transform = CATransform3DRotate(transform, CGFloat(radiants), 1.0, 0.0, 0.0)
    scroller.bringSubviewToFront(imageView)//It doesn't work.

1 个答案:

答案 0 :(得分:1)

我刚刚发现,如果你在CATransform3DTranslate中将z轴设置为1.0,那么该图层将变为其他图层的前面,所以只需将其设为0。