プロジェクトに 6 番目のタブ バーを追加したいと考えています。それをしようとすると、より多くのオプションが表示されますが、より多くのタブをクリックしても何も起こりません。これと他のロジックについても良い解決策を教えてください。
4 に答える
iOS 9 (およびおそらく 8) では、これを行う簡単な方法があります。このトリックを使用してアプリを配布することはお勧めしません.4秒または5秒で6つのタブはかなり窮屈です.しかし、知っておくと便利です.
iPad のタブ バーには、「その他」の項目がなくても 5 つ以上のタブを表示できることに注意してください。
「タブレットかどうか」を判断する Apple の新しい方法 はサイズクラスです。
したがって、サブクラス化UITabBarController
して実装します。
-(UITraitCollection *)traitCollection
{
UITraitCollection
*realTraits = [super traitCollection],
*lieTrait = [UITraitCollection traitCollectionWithHorizontalSizeClass:UIUserInterfaceSizeClassRegular];
return [UITraitCollection traitCollectionWithTraitsFromCollections:@[realTraits, lieTrait]];
}
6 つの子ビュー コントローラーを追加すると、出来上がりです! この場合、アップルは彼らが説いていることを実践しているようです!
(* これは、タブ内のビュー コントローラーの水平サイズ クラスにも関係することに注意してください。適切- setOverrideTraitCollection:forChildViewController:
なタイミングで、おそらく のオーバーライドで呼び出して、setViewControllers:
それらの特性コレクションを実際のコレクションに「オーバーライド」することをお勧めします。そうすれば、ユーザーが混乱したり、レイアウトの不適切な幅のバリエーションを表示しようとしたりすることがなくなります。)
[後で追加するように編集: iOS 12 かそこらの時点で、このトリックには興味深い副作用があります。タブが 5 つ以下の場合、タブ バーが iPad スタイルになり、タイトルがアイコンの右側に表示されます。]
ここからカスタム タブ バーを使用できます: http://cocoacontrols.com/platforms/ios/controls/infinitabbar
またはこれでも: http://cocoacontrols.com/platforms/ios/controls/ciexpandabletabbar