2017-07-20 6 views
0

Swift 3(XCode 8.3.3)では、私はUIStackViewでコントロールを持っています。私は、実行時にスタックビューを移入するために、配列をUIImageViewsの配列、およびループを持っている:UIStackViewでコントロールの内容を更新するにはどうすればよいですか?

for voiceIcon in voiceIcons { 
    let voiceView = UIImageView(image: voiceIcon) 
    addArrangedSubview(voiceView) 
} 

ために、コントロールを更新するので、これらのアイコンは、時々、(新しいイメージに置き換え)が無効になり、私は再度追加できるように、適切なもの(!より良い方法があるのならば、私は聞いている)すべてのアイコンを削除する機能を持っている:

private func resetIconsView() { 
    for subUIView in self.subviews as [UIView] { 
     removeArrangedSubview(subUIView) 
     subUIView.removeFromSuperview() 
     print("Removing") 
    } 
} 

私も

for subUIView in self.subviews as! [UIImageView] { ... } 
を試してみました

私は各アイコンのデバッグ行 "削除"を取得しますが、それらはまだコントロールとUIに残っています。私はSwiftには新しいので、何かを理解していない可能性があります。どのようなアプローチを取るべきですか?以下

答えて

1

は一部だけUIImageViewが含まれています。スタックビューのすべての配置されたサブビューを繰り返し、そのimageViewのイメージを更新できます。実装例は次のようになります。

func changeImage() { 
    for view in self.arrangedSubviews { 
     if let imgView = view as? UIImageView { 
      imgView.image = UIImage(named: "taka_icon.png") 
     } 
    } 
} 
0

てみてくださいコード:私はあなたのUIStackViewを想定しています

for view in arrangedSubviews { 
    view.removeFromSuperview() 
} 
関連する問題