相关疑难解决方法(0)

UITableView didSelectRowAtIndexPath:第一次点击时没有调用

我遇到了问题UITableView's didSelectRowAtIndexPath.

我的表是设置的,所以当我选择行时,它会初始化一个新的视图控制器并将其推送.

我第一次点击表中的任何一行时,该方法不会被调用.一旦我选择了另一行,它就会开始正常工作.

我已经通过设置断点来验证这一点didSelectRowAtIndexPath.在向NSLog方法添加时,我看到当我选择最后推送新视图控制器的第二行时,我看到控制台中同时出现两个日志语句.

有什么建议?

cocoa-touch uitableview uikit didselectrowatindexpath

350
推荐指数
6
解决办法
6万
查看次数

UIScrollView内的UITableView在滚动后没有收到第一次点击

简要

我在UITableView内心问题UIScrollView.当我滚动外部时scrollView,第一次触摸时table不会收到willSelect/didSelect事件,但第二次触摸时不会收到事件.更奇怪的是,细胞本身会得到触摸和突出显示的状态,即使delegate没有.

详细解释

我的视图层次结构

UIView
  - UIScrollView  (outerscroll)
      - Some other views and buttons
      - UITableView (tableView)
Run Code Online (Sandbox Code Playgroud)

在滚动视图中,我有一些额外的视图可以动态扩展/关闭.表格视图需要与视图中的其他一些元素一起"固定"在顶部,这就是我创建此布局的原因,这使我可以通过使用转换以类似于Apple推荐的方式轻松移动元素.滚动发生了.

当outerscroll像这样移动时,表视图将使用转换效果进行转换:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (scrollView == self.outerScrollView) {

        CGFloat tableOffset = scrollView.contentOffset.y - self.fixedHeaderFrame.origin.y;
        if (tableOffset > 0) {
            self.tableView.contentOffset = CGPointMake(0, tableOffset);
            self.tableView.transform = CGAffineTransformMakeTranslation(0, tableOffset);
        }
        else {
            self.tableView.contentOffset = CGPointMake(0, 0);
            self.tableView.transform = CGAffineTransformIdentity;
        }

        // Other similar transformations are done here, but not involving …
Run Code Online (Sandbox Code Playgroud)

objective-c uitableview uiscrollview ios

31
推荐指数
4
解决办法
3万
查看次数