環境: Swift5.1
例えば、あるビューに追加されている複数のサブビューの中から UIButton にキャストできるものだけ処理する場合
for case let button as UIButton in view.subviews { // ボタンに対する処理。ボタン以外はスキップされる。 // 例えばボタンの押下 button.sendActions(for: .touchUpInside) }
キャストまでは不要だが、あるクラス(またはサブクラス)時のみループ内を処理を実行する場合
for view in view.subviews where view is UIButton { // ビューに対する処理。ボタン以外はスキップされる。 // 例えばボタンの削除 view.removeFromSuperview() }