0

2 つの別々の UIView 四角形を並べて、適切な視点の「傾き」を実現したいと考えています。下の画像の赤と緑の四角は、同じ変換が適用された個別の UIView です。視覚的にこのパースペクティブは正しくありません (そうですか?)、または少なくとも優れた錯覚が、黄色/青色の正方形の 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には存在しない親ビューを作成するのが最善の方法だと思います。他の選択肢はありますか?

4

1 に答える 1