2017-07-20 4 views
0

Refreshableプロトコル

import UIKit 

protocol Refreshable { 
    var refreshControl: UIRefreshControl { get } 

    func setUp() 
} 

extension Refreshable where Self: UIViewController { 
    var refreshControl: UIRefreshControl { 
     return UIRefreshControl() 
    } 

    func setUp(_ target: Any?, targetView: UIView, action: Selector, for controlEvents: UIControlEvents) { 
     refreshControl.addTarget(target, action: action, for: controlEvents) 
     if #available(iOS 10.0, *) { 
      targetView.refreshControl = refreshControl 
     } else { 
      // If targetView is TableView, no need addSubView. Just set refreshControl. 
      targetView.addSubview(refreshControl) 
      targetView.alwaysBounceVertical = true 
     } 
    } 
} 

エラータイプの

値を作るには、 'UIViewの' 'refreshControl'値 'のUIView' はメンバー 'refreshControl' を持っていない

価値のないメンバーを持っていませんタイプ 'UIView'にはメンバー 'alwaysBounceVertical'はありません

質問

UIViewは、refreshControlalwaysBounceVerticalがありません。

どのようなタイプがありますか?

UITableView,UICollectionViewおよびUIScrollViewtargetViewを渡すことはできますか?

答えて

0

あなたはキャストsholud targetViewからUIScrollViewUITableViewまたはUIScrollView

if let view = targetView as? UIScrollView{ 
    view.refreshControl = refreshControl 
    //Other processes 
} 
関連する問題