UITableView滚动视图委托未被调用。

3

我在一个UIViewController中设置了一个TableView

@property (strong, nonatomic) IBOutlet UITableView *tableView;

在viewDidLoad中设置委托

self.tableView.delegate = self;
self.tableView.dataSource = self;

以下方法从未被调用:
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;
- (void)scrollViewDidScroll:(UIScrollView *)scrollView;

tableviewdelegate不是应该也符合uiscrollviewdelegate吗?有任何想法为什么这些方法从未被调用?

1
tableView在其他方面工作正常吗?其他(tableView)委托方法(例如didSelectRowAtIndex)是否有效? - pbasdf
是的,其他委托方法,如didSelectRowAtIndex正在工作。 - stefano_cdn
self.tableView.scrollView.delegate = self; 尝试一下 - Frans Raharja Kurniawan
尝试从IB进行链接。顺便说一下,对于IBOutlet组件,弱引用已经足够了。 - Dino Tw
1
根据您展示的代码,没有理由委托方法不应该被调用。无需将代码移动到viewDidAppear、awakeFromNib或将表视图转换为UIScrollView。您的选择不起作用的事实表明委托未设置。self.tableView非空吗?您是否在IB中设置了数据源?您确定委托方法拼写正确吗? - rdelmar
显示剩余5条评论
2个回答

1

你需要做两件事:

1)设置UITableView的delegate属性,正如其他人建议的那样。

并且

2)添加对UITableViewDelegate协议的遵循。

如果只做第一步,UIScrollViewDelegate方法将不会被调用。


0
awakeFromNib中添加委托行,而不是viewDidLoad。我有同样的问题,这样做有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接