1
我想在func scrollViewDidScroll(_ scrollView: UIScrollView) {...}
上做點什麼,這樣每個UITableView
都會運行這個覆蓋函數。如何覆蓋UITableView的功能?
我該怎麼做?我可以通過擴展或子類來實現嗎?
我是編程新手。任何幫助,將不勝感激。
我想在func scrollViewDidScroll(_ scrollView: UIScrollView) {...}
上做點什麼,這樣每個UITableView
都會運行這個覆蓋函數。如何覆蓋UITableView的功能?
我該怎麼做?我可以通過擴展或子類來實現嗎?
我是編程新手。任何幫助,將不勝感激。
scrollViewDidScroll
是UIScrollViewDelegate
的代表方法,並且UITableView
從UIScrollView
繼承。這不能通過擴展或繼承UITableView來實現,因爲它是委託方法。
只能在您的UITableView
委託類中覆蓋此功能。如果您正在使用UIViewController
s。創建一個基類BaseViewController
class BaseViewController: UIViewController {
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
}
}
如果使用UITableViewController
S,創建一個基類BaseTableViewController
class BaseTableViewController: UITableViewController {
public override func scrollViewDidScroll(_ scrollView: UIScrollView) {
}
}
現在只是改變所有控制器的超類BaseViewController
或BaseTableViewController
。
希望它有幫助。
謝謝,但我認爲你讓我錯了。例如,我有幾個uiviewcontroller,每個人都有一個tableview。我不想在每個tableview中重寫該方法。我只是想重寫一次,並適用於所有tableview – henry
hmmm ...這不能通過擴展或繼承'UITableView'來實現,因爲它是委託方法。 如果你所有的'UITableView'委託都是'UIViewController',你可以繼承'UIViewController'讓'BaseViewController'並覆蓋'BaseViewController'中的'scrollViewDidScroll'。現在你只需要改變所有'UIViewController'繼承'BaseViewController' – Bilal
我必須在baseviewcontroller上初始化uitableview?似乎有點複雜。你介意提供一些代碼的例子嗎?非常感謝你, – henry