4

プロジェクトに 6 番目のタブ バーを追加したいと考えています。それをしようとすると、より多くのオプションが表示されますが、より多くのタブをクリックしても何も起こりません。これと他のロジックについても良い解決策を教えてください。

4

4 に答える 4

7

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 スタイルになり、タイトルがアイコンの右側に表示されます。]

于 2015-12-22T21:42:53.417 に答える
1

ここからカスタム タブ バーを使用できます: http://cocoacontrols.com/platforms/ios/controls/infinitabbar

またはこれでも: http://cocoacontrols.com/platforms/ios/controls/ciexpandabletabbar

于 2012-04-25T12:01:47.060 に答える