func scrollViewDidScroll(_ scrollView: UIScrollView) {...}
で何かしたいので、すべてのUITableView
がこのオーバーライド機能を実行します。UITableViewの機能をオーバーライドする方法は?
どうすればいいですか?エクステンションやサブクラスでこれを行うことはできますか?
新しいものです。どんな助けもありがとう。
func scrollViewDidScroll(_ scrollView: UIScrollView) {...}
で何かしたいので、すべてのUITableView
がこのオーバーライド機能を実行します。UITableViewの機能をオーバーライドする方法は?
どうすればいいですか?エクステンションやサブクラスでこれを行うことはできますか?
新しいものです。どんな助けもありがとう。
scrollViewDidScroll
は、UIScrollViewDelegate
の代理メソッドであり、UITableView
はUIScrollView
から継承されます。これは、デリゲートメソッドであるため、UITableViewの拡張またはサブクラス化では実現できません。
この機能は、UITableView
デリゲートクラスでのみオーバーライドできます。
UIViewController
を使用している場合。あなたがUITableViewController
Sを使用している場合は、基本クラスBaseViewController
class BaseViewController: UIViewController {
public func scrollViewDidScroll(_ scrollView: UIScrollView) {
}
}
を作成し、BaseTableViewController
class BaseTableViewController: UITableViewController {
public override func scrollViewDidScroll(_ scrollView: UIScrollView) {
}
}
が今だけBaseViewController
またはBaseTableViewController
にすべてのコントローラのスーパークラスを変更する基本クラスを作成します。
希望します。
ありがとうございますが、私は間違っていると思います。たとえば、私はいくつかのuiviewcontrollerを持っていて、それぞれに1つのtableviewがあります。私は、各テーブルビューでメソッドをオーバーライドしたくありません。私はちょうど1回オーバーライドしてすべてのテーブルビューに適用したい – henry
hmmm ...これはデリゲートメソッドであるため、拡張子または 'UITableView'のサブクラス化では達成できません。 すべての 'UITableView'デリゲートが' UIViewController'であれば 'BaseViewController'をサブクラス化し、ベース' BaseViewControllerの 'scrollViewDidScroll'をオーバーライドすることができます。今度は 'UIViewController'のすべてを' BaseViewController'から継承する必要があります。 – Bilal
baseviewcontrollerでuitableviewを初期化する必要がありますか?少し複雑に思えます。コードの例を教えていただけますか?そんなにありがとう、 – henry