代理簡述 - delegate

delegate(代理)是什么?
A需要完成某事情,但是自己不想/自己不能完成,那怎么辦?

  1. 那么他將需要完成此事的條件列出來(協(xié)議)
  2. A設置個“代理屬性”
  3. 其他任何人,只要滿足條件(遵循代理協(xié)議),并告訴A,誰幫他做這事就行了(為A的代理屬性,設置代理對象)!

delegate的使用
以UIScrollView為例子,需要獲取當內容滾動時,獲取contentOffSet(偏移量)

  1. 遵守代理,協(xié)議<UIScrollViewDelegate>
  2. 代理屬性,UIScrollView里面的代理屬性
    @property (nonatomic, weak, nullable) id <UICollectionViewDelegate> delegate;
  3. 代理對象
    用當前控制器為,代理對象!self.scrollView.delegate = self;
  4. 實現(xiàn)代理方法
    - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView; //用戶開始拖拽時調用的代理方法

delegate做什么用?(解耦)

  1. 監(jiān)聽事件
    scrollView發(fā)生某個事件時 --> 通知代理對象的某個方法
    代理對象的某個方法,監(jiān)聽到scrollView的某個事件(狀態(tài)發(fā)生改變), --> 采取自己想要的行動
  2. 返回數據

注意:
@optional - (可選),@required -(必須)修飾的方法區(qū)別?
?被@optional修飾的方法可以實現(xiàn),也可以不實現(xiàn)
?被@required修飾的方法,必須實現(xiàn)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,628評論 30 472
  • 掌握 UIScrollView的常見屬性 UIScrollView的常用代理方法 UIScrollView的縮放 ...
    JonesCxy閱讀 2,878評論 1 12
  • 國家電網公司企業(yè)標準(Q/GDW)- 面向對象的用電信息數據交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,448評論 6 13
  • 1.OC里用到集合類是什么? 基本類型為:NSArray,NSSet以及NSDictionary 可變類型為:NS...
    輕皺眉頭淺憂思閱讀 1,481評論 0 3
  • 文/樹獺先生 我越來越相信,每個人來到你的生命自有他的意義,哪怕他只能陪你走一段路,也許你們的相遇只是為了告別。 ...
    樹獺先生閱讀 5,605評論 131 186

友情鏈接更多精彩內容