gpt4 book ai didi

ios - Controller 或 View 类中的 UIScroll 回调

转载 作者:行者123 更新时间:2023-11-29 05:24:55 26 4
gpt4 key购买 nike

我有一个 UITableview 的子类(代码如下)。我在我的 View Controller 中使用了这个类。我想要在我的表类中回调 ScrollView 。如何在 LargeTitleTableview 类中获取回调?或者滚动回调只会出现在 Controller 类中?我是否缺少任何委托(delegate)或设置?

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)
}
}

最佳答案

您已声明

class LargeTitleTableview: UITableView, UITableViewDelegate, UIScrollViewDelegate

您可以删除 UIScrollViewDelegate。如果这是 TableView 的委托(delegate),那么它就是 ScrollView 的委托(delegate);它们是同一个对象和同一个委托(delegate)。

目前尚不清楚您认为 LargeTitleTableviewDelegate 的用途是什么。我只想删除它。

然而,让 TableView 拥有自己的委托(delegate)是很奇怪的。整个架构似乎是一个糟糕的选择。不需要子类化 UITableView。如果您使用 UITableViewController,它是 TableView 的数据源和委托(delegate),您不应该尝试破坏它。

关于ios - Controller 或 View 类中的 UIScroll 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58260449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com