8月 2, 2010
Split Viewは、2つの隣り合ったペインから成る1つのフルスクリーンビューです。
横方向の場合はマスタペインと詳細ペインが表示されますが、縦方向の場合は詳細ペインのみの表示となります。
しかし、「設定」アプリのように縦方向の場合でもマスタペインを表示したい場合があります。
今回はその方法をご紹介します。
やることは3つです。
- UISplitViewControllerのサブクラスを作成
- willAnimateRotationToInterfaceOrientationをオーバーライド
- 横方向の場合のみ、最後に親クラスのwillAnimateRotationToInterfaceOrientationを呼ぶ
3番目がポイントです。
UISplitViewControllerのサブクラスのwillAnimateRotationToInterfaceOrientationでは以下のようにします。
縦/横それぞれの場合にマスタペインと詳細ペインの表示位置とサイズを変更します。
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration {
UIViewController* master = [self.viewControllers objectAtIndex:0];
UIViewController* detail = [self.viewControllers objectAtIndex:1];
CGRect masterFrame = master.view.frame;
CGRect detailFrame = detail.view.frame;
if(interfaceOrientation == UIInterfaceOrientationPortrait ||
interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {
// 縦
masterFrame.size.width = 320;
masterFrame.size.height = 1024;
masterFrame.origin.x = 0;
masterFrame.origin.y = 0;
detailFrame.size.width = 448;
detailFrame.size.height = 1024;
detailFrame.origin.x = 321;
detailFrame.origin.y = 0;
[master.view setFrame:masterFrame];
[detail.view setFrame:detailFrame];
}
else {
// 横
masterFrame.size.width = 320;
masterFrame.size.height = 768;
masterFrame.origin.x = 0;
masterFrame.origin.y = 0;
detailFrame.size.width = 704;
detailFrame.size.height = 768;
detailFrame.origin.x = 321;
detailFrame.origin.y = 0;
[master.view setFrame:masterFrame];
[detail.view setFrame:detailFrame];
[super willAnimateRotationToInterfaceOrientation:interfaceOrientation duration:duration];
}
}
ポイントとなるのは横方向の時の処理で、親クラスのwillAnimateRotationToInterfaceOrientationを呼んであげます。
これを指定しないとマスタペインと詳細ペインのつなぎ目のバーの直角となり丸みが消えてしまいます。

これらの指定で以下のように横、縦方向でも常に2ペインになります。
横方向の場合

縦方向の場合

以上です。

Split Viewを縦方向で2ペインにする | iPad Techfirm Lab
http://bit.ly/a3X4Ti
This comment was originally posted on Twitter
Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/cYAq62
This comment was originally posted on Twitter
RT @techfirmlab: Split Viewを縦方向で2ペインにする | iPad Techfirm Lab
http://bit.ly/a3X4Ti
This comment was originally posted on Twitter
[h] Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/9xOhiX
This comment was originally posted on Twitter
RT @techfirmlab: Split Viewを縦方向で2ペインにする | iPad Techfirm Lab
http://bit.ly/a3X4Ti
This comment was originally posted on Twitter
Split Viewを縦方向で2ペインにする | iPad Techfirm Lab: http://ipad.headline-jp.info/2010/08/02/080611 http://bit.ly/9xOhiX
This comment was originally posted on Twitter
Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://dlvr.it/3HMZL
This comment was originally posted on Twitter
Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://dlvr.it/3HRHz
This comment was originally posted on Twitter
fmfm Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://ow.ly/2jC4j
This comment was originally posted on Twitter
Split Viewを縦方向で2ペインにする | iPad Techfirm Lab: Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/cYAq62. This … http://bit.ly/9xOhiX
This comment was originally posted on Twitter
[GoogleAlert] Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/9xOhiX
This comment was originally posted on Twitter
ほうほう
[link] Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/czsTX6
This comment was originally posted on Twitter
ちぇきら!“@motomaka: ほうほう
[link] Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/czsTX6”
This comment was originally posted on Twitter
RT @motomaka: ほうほう
[link] Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/czsTX6
This comment was originally posted on Twitter
後で読む RT @whitedev RT @motomaka: ほうほう
[link] Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/czsTX6
This comment was originally posted on Twitter
RT @motomaka: ほうほう
[link] Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/czsTX6
This comment was originally posted on Twitter
なんか下から六番目のセルあたりに謎の三角が・・・? RT Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/a3X4Ti
This comment was originally posted on Twitter
[B!] Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.ly/cq5HY2
This comment was originally posted on Twitter
RT @techfirmlab: Split Viewを縦方向で2ペインにする | iPad Techfirm Lab
http://bit.ly/a3X4Ti
This comment was originally posted on Twitter
アイパッド Split Viewを縦方向で2ペインにする | iPad Techfirm Lab: Split Viewを縦方向で2ペインにする | iPad Techfirm Lab http://bit.l…; http://bit.ly/9xOhiX #followme
This comment was originally posted on Twitter
Split Viewを縦方向で2ペインにする | iPad Techfirm Lab: http://bit.ly/aa4rrT
This comment was originally posted on Twitter
[...] も1番簡単な方法をまた採用してきました! Comex氏素晴らしい!!対応しているデバイスはiPhone 3GiPhone 3GSiPhone 4iPod touch 2GiPod touch 3GiPad… Split Viewを縦方向で2ペインにする | iPad Techfirm Lab [...]
[メモ] iPadを2画面にする技 調査なう。 http://ow.ly/2nkPD
This comment was originally posted on Twitter
4.2では動作しませんでした
こんにちは。上記の方法でsplitview縦に分割しているのですがどうしても反映されません。
全体のソースを見せて頂きたいのですが。
ちなみにviewの色を変えてみましたが、そちらは反映されます。
よろしくおねがいいたします。
UISplitViewControllerのサブクラスの作成する場所を教えてください。
delegate,rootviewcontroller,detailcontrollerという三つのどれですか。
あるいは、新しくファイルを作らないといけないですか
よろしくおねがいいたします。