2016-11-10 20 views
1

私はXamarin.iOSで作業していますが、実行時にプログラムでボタンを追加したり削除したりする必要があるUIToolbarがあります。アイテムが既に追加された後、UIToolbarにUIBoolButtonItemを追加/削除するにはどうすればよいですか?

は、私が使用して、いくつかの異なるアプローチを試してみました:_buttonsはUIBarButtonItem []

SetItems(_buttons, false) 

で、ツールバーが更新するようではありません。

アプリがメインの3つのボタンで起動するとツールバーが初期化されます。特定のことが起こると、ツールバーからボタンを削除するだけでなく、新しい項目をツールバーに追加する必要があります。

SetNeedsDisplay() 

呼び出した後:

私はまた、呼び出ししようとしている

SetItems(_buttons, false) 

、これはどちらかのツールバー項目を更新しません。

提案がありますか?

答えて

1

そして、LayoutSubviewsが常に呼び出され、SetItemsをオーバーライドするために変更されない理由。コンストラクタを使用してツールバーを初めて作成する

public partial class CustomUiToolbar : UIToolbar 
{ 
    public CustomUiToolbar (IntPtr handle) : base (handle) 
    { 
     var _UIBarButtonItemArrayOne = new UIBarButtonItem[3]; 
     for (int i = 0; i < 3; i++) 
     { 
      var _item = new UIBarButtonItem(i.ToString(), UIBarButtonItemStyle.Done, null); 
      _item.TintColor = UIColor.Red; 
      _UIBarButtonItemArrayOne[i] = _item; 
     } 
     //var __UIBarButtonItemArrayTwo = new UIBarButtonItem[2]; 
     //for (int i = 0; i < 2; i++) 
     //{ 
     // var _item = new UIBarButtonItem(i.ToString(), UIBarButtonItemStyle.Done, null); 
     // _item.TintColor = UIColor.Blue; 
     // __UIBarButtonItemArrayTwo[i] = _item; 
     //} 
     SetItems(_UIBarButtonItemArrayOne, true); 
    } 

    public override void LayoutSubviews() 
    { 
     base.LayoutSubviews(); 



    } 
} 
+0

ありがとう@Yuri S、これは私が探していた答えでした! LayoutSubviews()の設定コードを移動してコンストラクタに入れると、トリックがかかりました。 – kformeck

関連する問題