2016-05-28 12 views
1

タブバーコントローラ内に2つのViewControllerがあります。インターフェイスビルダーでは、タブバーのアイコンに画像のインセット(5,5,5,5)を適用して、どのようにしてそれらのサイズを取得しましたか?最初はシミュレータを実行したときにすべてが素晴らしいように見えますが、2番目のViewControllerにタブすると、両方のタブバーアイコンが自動的にデフォルト(0、0、0、0)にリサイズされます。最初のViewControllerに戻るためにTabキーを押すと、両方のアイコンは、インセットのないデフォルトサイズでトラップされたままになります。iOSスウィフトタブバーランタイム時にアイコンインセットが消去される

注:私のアイコンイメージは、XCassetsフォルダ内の.pdfファイルです(単一ベクトルスケールファクタとして設定されます)。私は、インセットの「バランシング」を提案する他のスレッドを見てきました(トップは5、ボトムは-5)。しかし、これは画像を上から5圧縮し、下から5圧縮します。画像サイズのバランスをどのように決めるのか分かりません。

実行時にインセットを設定するコードが分かっている人は、インタフェースビルダーでインセットを設定する代わりに、そのインセットを使用することができますか?前もって感謝します。

答えて

0

文書を読むUIBarItem(スーパークラスUITabBarItem)のプロパティはimageInsetで、self.tabBarController.tabBar.itemsでタブバーの項目にアクセスできます。

自分でテストしないと、シェーディングが変更されたときに(選択のために)インセットがリセットされるという問題が発生する可能性があります。

このように、選択を変更するたびに(私が考えるデリゲートで検出できる)、インセットを希望のサイズにリセットする必要があります。

また、ソースイメージを目的の最終外観にカスタマイズするほうが簡単かもしれません。

関連する問題