2 つの別々の UIView 四角形を並べて、適切な視点の「傾き」を実現したいと考えています。下の画像の赤と緑の四角は、同じ変換が適用された個別の UIView です。視覚的にこのパースペクティブは正しくありません (そうですか?)、または少なくとも優れた錯覚が、黄色/青色の正方形の UIView によって示されます。黄青の正方形は、実際には長方形の親 UIView のサブビューであり、親ビューに変換が適用されました。
コードは次のとおりです。
@interface PEXViewController ()
@property (strong, nonatomic) IBOutlet UIView *redSquare;
@property (strong, nonatomic) IBOutlet UIView *greenSquare;
@property (strong, nonatomic) IBOutlet UIView *yellowSquareBlueSquare;
@end
@implementation PEXViewController
#define TILT_AMOUNT 0.65
-(void)tiltView:(UIView *)slave{
CATransform3D rotateX = CATransform3DIdentity;
rotateX.m34 = -1 / 500.0;
rotateX = CATransform3DRotate(rotateX, TILT_AMOUNT * M_PI_2, 1, 0, 0);
slave.layer.transform = rotateX;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self tiltView:self.greenSquare];
[self tiltView:self.redSquare];
[self tiltView:self.yellowSquareBlueSquare];
}
@end
1) 変換を別々の赤/緑の UIView に適用し、「グループ化された」黄色と青の UIView と同じ効果を達成する簡単な方法はありますか? これはユニバーサル アプリであり、UIView は (たとえば) iPad レイアウトで横に並んでいないため、ビューを個別に保持することを好みます。
2)#1が不可能な場合、iPhoneには存在するがiPadには存在しない親ビューを作成するのが最善の方法だと思います。他の選択肢はありますか?