Известно, что zPosition слоев определяет, какой слой покрывает слой. Является ли это zPosition 10 или 1000, не повлияет на его положение.
То есть, если мы не используем CATransformLayer, чтобы содержать эти слои, то zPosition этих слоев повлияет на слои, положение.
Однако следующий код, запущенный в iOS 5.1.1, делает zPosition изменением положения слоев... вы можете попробовать его в новом приложении Single View и добавить следующий код в ViewController.m. Если zPosition of layer2 изменен с 88 на 188, мы видим, что слой движется соответственно. Таким образом, no CATransformLayer находится в коде; почему он будет так себя вести? (Пожалуйста, укажите документы Apple или любую ссылку).
Также связано, если строка self.view.layer.sublayerTransform = transform3D; изменена на self.view.layer.transform = transform3D;, тогда zPosition не будет влиять на позицию. Но  в соответствии с документами Apple, transform и sublayerTransform отличаются только тем, преобразуется ли я сам или нет:
Свойства двух слоев задают матрицы преобразования:
transformиsublayerTransform. Матрица, указаннаяtransform property, равна применяется к слою и его подслоям относительно уровняanchorPoint. [...] Матрица, заданнаяsublayerTransformсвойство применяется только к подслоям слоев, а не самому слою.
Так странно, что почему изменение этого приведет к тому, что self.view.layer будет действовать как CATransformLayer.
-(void) viewDidAppear:(BOOL)animated {
    CATransform3D transform3D = CATransform3DIdentity;
    transform3D.m34 = -1.0 / 1000;
    transform3D = CATransform3DRotate(transform3D, M_PI / 4, 0, 1, 0);
    self.view.layer.sublayerTransform = transform3D;
    CALayer *layer1 = [[CALayer alloc] init];
    layer1.zPosition = 33;
    layer1.frame = CGRectMake(100, 100, 100, 100);
    layer1.backgroundColor = [[UIColor orangeColor] CGColor];
    [self.view.layer addSublayer:layer1];
    CALayer *layer2 = [[CALayer alloc] init];
    layer2.zPosition = 88;
    layer2.frame = CGRectMake(100, 120, 100, 100);
    layer2.backgroundColor = [[UIColor yellowColor] CGColor];
    [self.view.layer addSublayer:layer2];    
}



