2017-08-30 5 views
0

私はViewDidLoadのスタックビューに一連のビューを追加しています。最後に、より多くのアレンジされたサブビューを追加して、ViewDidLoadで動作するコードを繰り返す "Load More"ボタンを追加しています。しかし、私は画面上のビューのいずれかを見ることができません。どんな助けでも大歓迎です。ここでuistackviewにサブビューを追加するとボタン上でクリックできない

public override void ViewDidLoad() 
{ 
    stackView.AddArrangedSubview(view1); 
    stackView.AddArrangedSubview.(view2); 
    stackView.AddArrangedSubview.(button); 
    button.TouchUpInside += (object sender, EventArgs e) => 
    { 
    stackView.AddArrangedSubview(view1); 
    stackView.AddArrangedSubview.(view2); 
} 
+0

私はあなたの新しいインスタンスを作成する必要があると思いますボタンclickイベントのview1とview2。例えばstackView.AddArrangedSubView(new View1()); – Robbie188

+1

view1とview2は既にStackViewにありますので、再度追加することはできません。 – Robbie188

+0

最初に、追加するビューがnullでないかどうかを確認します。次に、ボタンをクリックした後で、スタックビューに含まれているビュー数を確認します。 view1インスタンスとview2インスタンスを作成する場所を教えてください。 – Lapinou

答えて

0

はあなたに私のサンプルコードベースである:

注:私は私のstackviewを設定します。

配布は "平等を塗りつぶし" に設定するとAlignementは "塗りつぶし" に設定しました

public override void ViewDidLoad() 
{ 
    base.ViewDidLoad(); 
    // Perform any additional setup after loading the view, typically from a nib. 

    AddViewsInStackView(); // Add views first time in the stackview 
    AddButtonInStackView(); // Add the "Add button" first time in the stackview 
} 

private void AddViewsInStackView() 
{ 
    // Create 2 views and add them to the stackview 
    var view1 = new UIView { BackgroundColor = UIColor.Red }; 
    var view2 = new UIView { BackgroundColor = UIColor.Green }; 

    stackView.AddArrangedSubview(view1); 
    stackView.AddArrangedSubview(view2); 
} 

private void AddButtonInStackView() 
{ 
    // create the "Add button" 
    var button = new UIButton(UIButtonType.Custom); 
    button.SetTitle("Add", UIControlState.Normal); 
    button.SetTitleColor(UIColor.Blue, UIControlState.Normal); 

    button.TouchUpInside += (sender, e) => AddSupplementaryViews(); 
    stackView.AddArrangedSubview(button); // Add the "Add button" in the stackview 
} 

private void AddSupplementaryViews() 
{ 
    if (stackView.ArrangedSubviews.Any()) 
    { 
     // Fetch the "Add button" then remove them 
     var addButton = stackView.ArrangedSubviews.Last(); 
     stackView.RemoveArrangedSubview(addButton); // This remove the view from the stackview 
     addButton.RemoveFromSuperview(); // This remove the view from the hierarchy 

     AddViewsInStackView(); // Add new views 
     AddButtonInStackView(); // Add it again so it will be the last one every time 
    } 
} 
+0

それは私がやろうとしていることです。ビューはスタックビューにも追加されています。すぐに画面上で更新されません。別のビューに移動してこのビューに戻ったとき、私は追加されたサブビューを見ることができました。だから私は、私は、サブビューを追加した後、ビューを更新するために何かをする必要があると推測しています。 – benin101

+0

Stackviewでビューを追加する場所にコードを入力してください。また、あなたはバックグラウンドスレッドからこれらのビューを追加していませんか? – Lapinou

関連する問題