2

xcode 4.5.1 で、シングル ビュー iOS アプリケーション プロジェクトを開始し、plist またはターゲット設定で、横向きの左右の向きのみをサポートするようにします。次にViewControllerで、これを入れます:

- (void)viewDidAppear:(BOOL)animated {
    NSLog(@"bounds: %.2f,%.2f",self.view.bounds.size.width,self.view.bounds.size.height);
    NSLog(@"frame:  %.2f,%.2f",self.view.frame.size.width,self.view.frame.size.height);
}

実行すると次のようになります。

bounds: 1024.00,748.00
frame:  748.00,1024.00

理由はありますか?トランジション、コアアニメーションレイヤーなどであらゆる種類の問題を引き起こしています。ビューが横になっているにもかかわらず、ビューのCALayerのようなものがまだ縦になっているようです。

編集:

次のようなことを試してみると:

CATransition* transition = [CATransition animation];
transition.duration = 2.2;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromBottom;
[self.navigationController.view.layer addAnimation:transition forKey:nil];
[self.navigationController popToRootViewControllerAnimated:NO];

下からではなく右から来ていることに注意してください。新しいビューは、縦方向の寸法に基づいているため、古いビューと重なっています。

4

1 に答える 1

4

の境界は、UIView独自の座標系 (0, 0) に対する位置 (x,y) とサイズ (幅, 高さ) として表される四角形です。

のフレームはUIView長方形で、その中に含まれる に対する位置 (x、y) とサイズ (幅、高さ) で表されsuperviewます。

だから、あなたはこの結果を得ています。

于 2013-01-04T10:34:21.090 に答える