在我的应用程序中,我在 ScrollView 上添加了 UITableView。我在表格 View 中禁用滚动。
所以,只有scrollView Scrolls,我用tableView Frame 调整了scroll view content Size。所以,我可以访问所有单元格。
考虑一下,屏幕上有 5 行可见,如果我点击其中任何一行,就会调用 didSelectRowAtIndexPath 方法。如果我向下滚动,请说第 6 个单元格并点击它。该方法不会被调用。
UIcollectionView 也会出现同样的问题。
我添加的原因是。当我滚动 ScrollView 时,其中的 View 应该固定在顶部,并且它后面的 tableView 应该继续滚动。您可能已经在 Android 中的许多应用程序中看到过。因此,我使用了 ScrollView didScroll 委托(delegate)来获取偏移位置。根据它,我将固定 View ,反之亦然。
Best Answer-推荐答案 strong>
使UITableView 的高度与表格的内容高度一致。
然后设置UIScrollView 的内容大小为UITableView 的高度
这里有一个简单的例子来演示
CGRect rect = tblTopics.frame;
rect.size.height = tblTopics.contentSize.height;
tblTopics.frame = rect;
self.scrlVwFacultyDtl.contentSize = CGSizeMake(self.scrlVwFacultyDtl.frame.size.width, tblTopics.frame.size.height);
在上面的例子中,tblTopics 是 UITableView 的实例,而 scrlVwFacultyDtl 是 UIScrollView 的实例
希望对你有所帮助..
关于ios - UITableView didSelect 委托(delegate)没有被调用?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/38222263/
|