UITabBar

9646 ワード

https://developer.apple.com/documentation/uikit/uitabbar
"A control that displays one or more buttons in a tab bar for selecting between different subtasks, views, or modes in an app."
ラベルバーの1つ以上のボタンのコントロールを表示し、アプリケーションで他のサブタスク、ビュー、またはモードを選択します.

Declaration

@MainActor class UITabBar : UIView

Overview


ラベルバーは、通常、UITabBarControllerオブジェクトとともに使用できますが、アプリケーションでは独立したコントロールとして使用することもできます.ラベルバーは常に画面の下部に表示され、1つ以上のUITabBarItemオブジェクトの内容が表示されます.ラベルバーの外観は、必要なインタフェース要件を満たすためにバックグラウンド画像またはシェーディングによってカスタマイズできます.プロジェクトを選択してハイライト表示する場合は、プロジェクトの選択を使用してアプリケーションで適切なモードをアクティブにできます.
ラベルバーは、コードライターまたはインタフェースビルダーで設定できます.UITabBarControllerオブジェクトは、自身のラベルバーオブジェクトを提供し、提供されたオブジェクトを設定する必要があります.コードとしてタブバーを作成する場合は、init(frame:)メソッドを使用するか、他のビューの頭文字の並べ替えメソッドを使用して初期設定を設定します.このような方法でラベルバーの外観を設定してください.自分で作成したラベルバーの場合、ラベルバーに表示されるアイテムを最適化するには、このクラスの方法を使用する必要があります.
NoteUITabBar類はUIToolbar類と外観は似ているが、目的は異なる.ラベルバーを使用して、アプリケーションのモードを転送および変更する必要があります.現在提供されているコンテンツに関連付けられたアクションセットを使用してユーザーに表示するには、ツールバーを使用します.タブバーとツールバーの使用方法の詳細については、iOS Humanインタフェースガイドを参照してください.
iOS Human Interface Guidelines
https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/
https://velog.io/@panther222128/iOS
タブバーは、選択およびユーザー定義を遅延ゲートオブジェクトに転送します.自分で作成したラベルバーの場合は、遅延ドアを使用して、ラベルバーの項目の選択、追加、削除、または並べ替えに応答します.(UITabBarControllerオブジェクトは、このオブジェクトが管理するラベルバーの中継局である.)ラベル・バー・ゲートウェイの実装の詳細については、UITabBarDelegateを参照してください.

Configure the Tab Bar Items


インタフェースビルダーを使用してラベルバープロジェクトを設定するか、コードにコードを記述してラベルバープロジェクトを設定できます.インタフェースビルダーのラベルバーは、事前に設定されたいくつかの初期アイテムであり、必要に応じてアイテムを追加、削除、再ソートできます.設計時にアイテムを設定する方法は、ラベルバーがUITabBarControllerオブジェクトに接続されていることによって異なります.

  • インタフェースビルダーにラベルバーが設定されている場合.
    オブジェクト
  • 2UITabBarControllerが表示されると、シーン内でビューコントローラを追加または削除し、ラベルバーコントローラと新しいビューコントローラの間にセグメント関係を作成できます.セグメント関係を作成すると、自動的に新しいアイテムがラベルバーに追加され、既存のセグメント関係を削除すると、対応するラベルバーアイテムが削除されます.
  • ラベルバーコントローラが表示されない場合は、ライブラリからラベルバーをドラッグしてラベルバーに配置する必要があります.

  • ラベルバーが[コードを記述](Create Code)に設定されている場合.
  • UITabBarControllerオブジェクトに接続するラベルバーを設定するには、ラベルバーコントローラに接続するビューコントローラを設定する必要があります.ラベルバーは、ラベルバーコントローラにリンクされた各ビューコントローラのtabBarItem属性から自動的にアイテムを取得します.
  • ラベルバー項目を直接設定するには、ラベルバー自体のsetItems(_:animated:)メソッドを使用する必要があります.ラベルバーは、itemPositioningプロパティを使用して、すべてのラベルを画面に一度に表示し、使用可能なスペース内のアイテムの位置を決定します.使用可能な領域よりも大きい項目がある場合は、サブセットのみが表示され、表示するタブを選択できます.beginCustomizingItems(_:)メソッドを使用すると、表示するラベル・バー・アイテムのインタフェースを選択できます.
    各項目の内容はUITabBarItemオブジェクトに格納される.各項目には、タブに表示するタイトルと画像が含まれています.また、ラベルバー項目を使用して、対応するラベルにバッジを追加することもできます.プロジェクトの作成と設定の詳細については、UITabBarItemを参照してください.

    Respond to Tab Selections


    タブバーコントローラが接続されているタブバーの場合、タイトルバーコントローラは選択を自動的に管理し、適切なビューコントローラを表示します.ラベルバーコントローラがない場合にのみ、ラベルバーを作成する場合は、独自の選択を管理する必要があります.タブバーには、選択の変更に応答するために使用できる遅延ゲートオブジェクトtabBar(_:didSelect:)の選択方法が通知されます.遅延ゲートオブジェクトの実装の詳細については、UITabBarDelegateを参照してください.
    UITabBarDelegate
    https://developer.apple.com/documentation/uikit/uitabbardelegate
    https://velog.io/@panther222128/UITabBarDelegate

    Configure a Tab Bar with Interface Builder


    Table 1には、インタフェースビルダーでタブバーに設定できるプロパティのリストが表示されます.
    Table 1 Tab bar attributes
    AttributeDiscussionBackgroundバーに表示される背景画像です.拡張可能な画像を特定すると、画像は利用可能な空間に適していると判断され、逆にタイルで表示されます.背景画像を設定すると、ラベルバーはシェーディング情報を無視します.backgroundImageプロパティを使用して、このプロパティをエンコードに設定してください.これは、[シャドウ](Shadows)タブバーのカスタムシャドウ画像です.タブバーにカスタムバックグラウンドがない場合は、このプロパティは無視されます.shadowImageプロパティを使用して、このプロパティをエンコードに設定してください.これは、選択したタブの画像です.selectionIndicatorImageプロパティを使用して、このプロパティをエンコードに設定してください.Image Tintで選択したアイテムに適用するシェーディングに使用します.tintColorプロパティを使用して、このプロパティをエンコードに設定してください.スタイルバーの既定のスタイルに適用されます.ラベルバーを暗いまたは明るいスタイルに設定できます.ラベルバーは不透明または透明です.スタイルをエンコードするには、barStyleおよびisTranslucentのプロパティを使用します.Bar Tint Barに適用されるリップカラー.barTintColorプロパティを使用して、このプロパティをエンコードに設定してください.アイテムの位置付けに使用するPosition Skimこのプロパティを使用して、ラベルバーの幅の間のアイテムの位置を設定します.itemPositioningプロパティを使用して、このプロパティをエンコードに設定してください.

    Internationalize a Tab Bar


    ラベルバーを国際化するには、ラベルバーの項目タイトルにローカライズされた文字列を指定する必要があります.
    詳細については、「国際化およびローカライズガイド」を参照してください.
    Internationalization and Localization Guide
    https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPInternational/Introduction/Introduction.html#//apple_ref/doc/uid/10000171i

    Make a Tab Bar Accessible


    既定では、タブバーはアクセス可能です.
    iOSデバイスで音声切り替えが有効になっている場合、ユーザーがラベルバーでラベルをタッチすると、音声切り替えはラベルのタイトル、ラベルバーの位置、およびラベルが選択されているかどうかを読み取ります.たとえば、iPadでiTunesアプリケーションから「Selected、Audiobooks、Fourof 7」または「Genius、6 of 7」が聞こえる場合があります.
    インタフェースをアクセス可能にするための一般的な情報については、『OSアクセス可能プログラムガイド』を参照してください.
    Accessibility Programming Guide for iOS
    https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/iPhoneAccessibility/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008785

    Topics


    Customizing Tab Bar Appearance


    Legacy Customizations


    ナビゲーションバーオブジェクトから直接シェイプ情報をカスタマイズします.
    https://developer.apple.com/documentation/uikit/uinavigationbar/legacy_customizations
    https://velog.io/@panther222128/Legacy-Customizations

    See Also


    Bars


    UIBarItem


    画面の下部に追加できるアイテムの抽象スーパークラス.
    https://developer.apple.com/documentation/uikit/uibaritem
    https://velog.io/@panther222128/UIBarItem

    UIBarButtonItem


    ツールバーまたはラベルバーに配置された特殊なボタン.
    https://developer.apple.com/documentation/uikit/uibarbuttonitem
    https://velog.io/@panther222128/UIBarButtonItem

    UIBarButtonItemGroup


    ipad上のキーボード上の短い横棒に表示される横棒ボタン項目の集合.
    https://developer.apple.com/documentation/uikit/uibarbuttonitemgroup
    https://velog.io/@panther222128/UIBarButtonItemGroup

    UINavigationBar


    通常、ナビゲーションコントロールは、画面上部のバーに表示されるナビゲーションコントロールとともに表示されます.
    https://developer.apple.com/documentation/uikit/uinavigationbar
    https://velog.io/@panther222128/UINavigationBar

    UISearchBar


    ユーザーから検索に関連する情報を取得するための特殊なビュー.
    https://developer.apple.com/documentation/uikit/uisearchbar
    https://velog.io/@panther222128/UISearchBar

    UIToolbar


    1つ以上のボタンのコントロールをインタフェースの下部に表示します.
    https://developer.apple.com/documentation/uikit/uitoolbar
    https://velog.io/@panther222128/UIToolbar

    UITabBarItem


    ラベルバーにアイテムのオブジェクトを表示します.
    https://developer.apple.com/documentation/uikit/uitabbaritem
    https://velog.io/@panther222128/UITabBarItem