view
Swift

指定した子のViewクラスを取得する処理を作成してみた

タグを使用せずに
特定の子のViewを取得する処理を作成してみた

UIView+getSubView.swift
extension UIView {
    func getSubView(checkClass : AnyClass) -> AnyObject? {    
        //子のViewを取得
        for subView in self.subviews {
            //その子のViewが引数のクラスだったらそのオブジェクトを返す
            if type(of: subView) == checkClass {
                return subView
            } else {
                //違ったら下のViewを再起的にチェックし、見つかったらそのViewを返す
                if let view = subView.getSubView(checkClass : checkClass ) {
                    return view
                }
            }
        }  
        return nil
    }
}

使用する時は
self.view.getSubView(checkClass : UIView.self)
とするだけ