Обратный вызов UIScroll в контроллере или классе просмотра - PullRequest
0 голосов
/ 06 октября 2019

У меня есть подкласс UITableview (код ниже). Я использовал этот класс в моем контроллере представления. Я хочу, чтобы callabck представления прокрутки в моем классе таблицы. Как я могу получить обратный звонок в LargeTitleTableview классе? Или обратный вызов прокрутки придет только в классе контроллера? Мне не хватает делегата или настроек?

import Foundation
import UIKit


protocol LargeTitleTableviewDelegate: class {
    func scrollHua(largeTitleTableview: LargeTitleTableview, scrollViewInstance scrollView: UIScrollView)

}
class LargeTitleTableview: UITableView, UITableViewDelegate, UIScrollViewDelegate {
    weak var largeTitleTableviewDelegate: LargeTitleTableviewDelegate?

    override func awakeFromNib() {
        super.awakeFromNib()
        configureTableView()
    }
    fileprivate func configureTableView() {
        self.contentInset = UIEdgeInsets(top: 100, left: 0, bottom: 0, right: 0)
        self.scrollIndicatorInsets = self.contentInset
        let view = UIView(frame: CGRect(x: 0, y: -100, width: 200, height: 100))
        view.backgroundColor = .red
        self.addSubview(view)
        self.delegate = self
    }
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
            print("Callback is not coming in this class")
            largeTitleTableviewDelegate?.scrollHua(largeTitleTableview: self, scrollViewInstance: scrollView)
    }
}

1 Ответ

0 голосов
/ 06 октября 2019

Вы объявили

class LargeTitleTableview: UITableView, UITableViewDelegate, UIScrollViewDelegate

Вы можете удалить UIScrollViewDelegate. Если это делегат табличного представления, то это делегат представления прокрутки;это один и тот же объект и один и тот же делегат.

Неясно, для чего, по вашему мнению, будет LargeTitleTableviewDelegate. Я бы просто удалил его.

Очень странно, однако, сделать табличное представление своим собственным делегатом. Вся эта архитектура кажется плохим выбором. Там не должно быть необходимости в подклассе UITableView. Если вы используете UITableViewController, это источник данных и делегат табличного представления, и вам не следует пытаться это подорвать.

...