相关疑难解决方法(0)

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万
查看次数

标签 统计

ios ×1

objective-c ×1

uiscrollview ×1

uitableview ×1