2017-03-17 10 views
1

基本的には、タブバーの高さを変更したいので、UITabBarをサブクラス化することで機能する複数のソリューションが見つかりました。UITabBarControllersのクラスをプログラムで変更tabBarプロパティ

しかし、実際にそのサブクラスをタブコントローラーで使用するには、他のSOスレッドのユーザーがストーリーボードのサブクラスを変更するように指示しているようです。しかし、私が働いているアプリケーションはプログラムでタブコントローラを作成するので、私はストーリーボードのサブクラスを変更することができません。

解決策が投稿されるSO質問の例ですが、ストーリーボードを使用して新しいタブバーコントローラサブクラスを使用します。

So. UITabBarControllerでサブクラス化されたUITabBarを使用する方法はありますか?


たとえば、のは、私がchanging the height of UITabBar in iOS7/8?

@implementation MyTabBar 

-(CGSize)sizeThatFits:(CGSize)size 
{ 
    CGSize sizeThatFits = [super sizeThatFits:size]; 
    sizeThatFits.height = 100; 

    return sizeThatFits; 
} 

@end 

今、このスレッドからソリューションを取ると仮定しましょう。私のプログラムで構築されたUITabBarControllerで、このクラス(MyTabBar)をタブバーとして使用するにはどうすればいいですか?

私が持っていた最初に考えたのは

self.tabBar = [[MyTabBar alloc] init]; 

ような何かをしましたが、プロパティは読み取り専用です。

+0

申し訳ありません@Sneak、私はより多くの情報を追加しました。投稿したリンクは、私が抱えている問題とは関係ありません。 –

+0

私の唯一の質問は、どうすればUITabBarControllerのtabBarプロパティのクラスをプログラム的に変更できますか?それ以上はない。 –

+0

私が提供したリンクを見れば、UITabBar自体のサブクラス化が機能します。しかしストーリーボードが必要です。私の質問は、単に私がストーリーボードの要件なしでのみ行うことができるかどうかです。 –

答えて

0

私はObjective-Cについてはよく分からないけどSwiftに、あなたはcomputed propertyとしてtabBarをオーバーライドすることによってこれを行うことができます。

open class MyTabBarController: UITabBarController { 
    open override var tabBar: MyTabBar { 
     return MyTabBar() 
    } 
} 
関連する問題