Swift 代理巧用技巧

103 阅读1分钟

Swift 代理巧用技巧

import UIKit
// 1定义
protocol MyControllerDelegate: NSObject {
    func inputController(inputController: IMInputController, didChangeHeight height: CGFloat)
    func inputController(inputController: MInputController, didSendPlainText text: String)
    func inputController(inputController: IMInputController, didSendPic path: String, imageSize size: CGSize)
}

// 2初始化命名
class MyController: UIViewController {
    weak var delegate: MyControllerDelegate?
}

// 3应用
extension MyController: MyControllerDelegate {
  func inputBar(_ inputBar: IMInputBar, didSendText text: String) {
        delegate?.inputController(inputController: self, didSendPlainText: text)
    }
    func inputBar(_ inputBar: IMInputBar, didChangeInputHeight offset: CGFloat) {
        delegate?.inputController(inputController: self, didChangeHeight: self.view.frame.size.height + offset)
    }
}