後,我試圖使像一個你可以在這裏看到一個摺疊的Facebook菜單:http://www.mobileinc.co.uk/2012/05/folding-iphone-sidebar-menu/CATransform3DRotate CATransform3DTranslate
現在,我中庸之道的「摺疊」的部分工作。我有2層: - 左層具有錨固點,在{1,0.5} - 右層具有在錨點{0,0.5}
我可以使他們在我的主要的中間折查看沒有這樣的問題: CGFloat width = self.view.frame.size.width; CGFloat destinationWidth = slider.value * width;
CGFloat hypothenuse = self.view.frame.size.width/2.0f;
CGFloat adjacent = destinationWidth/2.0f;
CGFloat opposite = sqrtf(powf(hypothenuse, 2)-powf(adjacent, 2));
CGFloat marginLeft = (width - destinationWidth)/2;
CGFloat angle = asinf(opposite/hypothenuse);
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0f/-4000.0f;
rightSide.layer.transform = CATransform3DRotate(CATransform3DTranslate(transform,0,0,-opposite),-angle, 0, 1, 0);
leftSide.layer.transform = CATransform3DRotate(CATransform3DTranslate(transform,0,0,-opposite),angle, 0, 1, 0);
這很好用。問題是當我嘗試在x軸上這樣翻譯我的層: CATransform3DTranslate(變換,-marginLeft,0,-opposite)
層仍與良好的z平移倍,但它與一個尷尬的角度結束如果整個視圖已經旋轉。
這顯然與角度(當我不設置M34,它「工程」),但我想不出如何補償吧...
預先感謝您!
乾杯,
TeuBeu2
我理解它與消失點做的,但我不能去改變它。我嘗試修改主視圖定位點,但它似乎不起作用... – TeuBeu2
使用-opposite進行z翻譯有什麼作用? – Nico