【问题标题】:UITableView didSelect delegate doesnt gets called?UITableView didSelect 委托没有被调用?
【发布时间】:2016-11-08 09:39:09
【问题描述】:

在我的应用程序中,我在 ScrollView 上添加了 UITableView。我在表格视图中禁用滚动。 所以,只有scrollView Scrolls,我用tableView Frame 调整了scroll view content Size。所以,我可以访问所有单元格。

考虑一下,屏幕中有 5 行可见,如果我点击任何一行,就会调用 didSelectRowAtIndexPath 方法。如果我向下滚动,请说第 6 个单元格并点击它。该方法不会被调用。

UIcollectionView 也会出现同样的问题。

我添加的原因是。当我滚动滚动视图时,其中的视图应该固定在顶部,并且它后面的 tableView 应该继续滚动。您可能已经在 Android 中的许多应用程序中看到过。因此,我使用了 ScrollView didScroll 委托来获取偏移位置。根据它,我将固定视图,反之亦然。

【问题讨论】:

  • tableview 的高度是多少?
  • 为什么滚动视图中有一个 uitableview ?
  • 对于我的设计,我需要这样做。我已经自定义了一些功能,比如在 android 中。
  • stackoverflow.com/questions/17121488/… 。你可以参考这个帖子。
  • 再想一想:你知道吗,UITableView 是 UIScrollView 的子类?所以如果你创建了一个UITableView并设置了delegate,它也会调用scrollViewDidScroll方法,以tableView为参数,它会有contentSize和contentOffset。所以也许你可以摆脱 scrollView 本身,让事情变得更简单。

标签: ios objective-c uitableview uiscrollview didselectrowatindexpath


【解决方案1】:

使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 的实例

希望对你有所帮助..

【讨论】:

  • 谢谢兄弟,我明白了。在 cmets 的帮助下。我只是动态更改高度约束。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 2022-01-22
  • 2010-11-18
  • 1970-01-01
相关资源
最近更新 更多