2017-07-20 6 views
0

machen Refreshable Protokoll

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 
     } 
    } 
} 

Fehler

Wert vom Typ 'UIView' kein MitgliedWert vom Typ 'UIView' hat kein Mitglied 'refreshControl'

Value 'refreshControl' hat von Typ 'UIView' hat kein Mitglied 'alwaysBounceVertical'

Frage

Ich weiß UIView hat keine refreshControl und alwaysBounceVertical.

Welcher Typ hat diese?

Kann ich targetView für UITableView, UICollectionView und UIScrollView übergeben.

Antwort

0

Sie sholud werfen targetView-UIScrollView, UITableView oder UIScrollView

if let view = targetView as? UIScrollView{ 
    view.refreshControl = refreshControl 
    //Other processes 
} 
Verwandte Themen