TTDefaultStyleSheetから継承する新しいクラスを作成しました。Three20&MonoTouch:TTTabStripの色が変わらない
public class BlackStyleSheet : TTDefaultStyleSheet
{
public BlackStyleSheet() : base()
{
Console.WriteLine("BlackStyleSheet created.");
}
public override UIColor TabBarTintColor
{
get
{
Console.WriteLine("BlackStyleSheet.TabBarTintColor returned.");
return UIColor.Black;
}
}
[Export ("tabTintColor")]
public override UIColor TabTintColor
{
get
{
Console.WriteLine("BlackStyleSheet.TabTintColor returned.");
return UIColor.Black;
}
}
}
私はFinishedLaunchingメソッドでこのカスタムスタイルシートをデフォルトとして設定します。その後
public override void FinishedLaunching (UIApplication application)
{
Three20.TTStyleSheet.GlobalStyleSheet = new BlackStyleSheet();
Three20.TTDefaultStyleSheet.GlobalStyleSheet = new BlackStyleSheet();
Console.WriteLine("Three20 style sheet set.");
}
、私は自分のカスタムのUIViewControllerののviewDidLoad()メソッド内の実際のTTTabStripとTTTabItem要素を作成します。 TTTabItemオブジェクトは、メソッドレベルではなくクラスレベルで宣言されています。 TTDefaultStyleSheet.GlobalStyleSheetプロパティが新しいカスタムスタイルシートに設定されている
tab1 = new TTTabItem("1");
tab2 = new TTTabItem("2");
tab3 = new TTTabItem("3");
TabStrip = new TTTabStrip();
TabStrip.Frame = new RectangleF(0,0,View.Frame.Width, 44);
TabStrip.TabItems = NSArray.FromNSObjects(tab1,tab2,tab3);
TabStrip.SelectedTabIndex = 0;
View.AddSubview(TabStrip);
、アプリがクラッシュします。このプロパティ設定を削除すると、アプリケーションは完全に実行されますが、タブストリップはグレーのままです。
私が読んだ(誰もMonoTouch特有のようではない)すべてのフォーラムで、彼らは自分のスタイルシートを作成した後、それをグローバルスタイルシートに設定することを示しています。しかし、これはMonoTouchで私にとってはうまくいかないようです。
誰にもアイデアはありますか?
は、
ジョンK.
あなたはそれを解決しなかった私は、この問題に自分自身を走りましたか? – Eric