【问题标题】:Unable to get grouped UItableView to scroll to second section when obscured by picker view被选取器视图遮挡时,无法让分组的 UItableView 滚动到第二部分
【发布时间】:2010-11-03 20:09:21
【问题描述】:

Stackoverflow 似乎是互联网上最权威且易于使用的技术论坛之一,所以我认为这是最好的起点。我已经对这个特定问题进行了大量研究,到目前为止,我还没有找到明确的答案,并希望这里的某个人能找到解决方案,或者至少可以回答为什么这不起作用。这适用于带有 xcode 3.2.4 的 iPhone SDK 4.1。

我有一个分组表视图,其中包含 2 个部分,每个部分有 3 行。按照设计,整个表格视图在不被遮挡时都是可见的。当用户触摸任何单元格时,将显示选择器视图,并且在选择器上进行选择时,它们会反映在选定的表格视图单元格中。这个选择器视图遮住了底部的三个单元格,所以我想让底部的单元格向上滑动并可见,但是使用以下代码时没有任何反应:

NSIndexPath* ip = [NSIndexPath indexPathForRow:0 inSection:1];

[tableView scrollToRowAtIndexPath:ip
    atScrollPosition:UITableViewScrollPositionTop animated:NO];

没有编译器错误或警告,我已经验证它正在执行并且在表格视图上启用了滚动。正如预期的那样,当没有遮挡时,表格视图不会滚动而是反弹,因为所有单元格都已经可见。我想了几个解决方法,但都不是很吸引人。一种是创建两个单独的表视图,但这将涉及大量工作,因为我已经进行了进一步的开发,前提是能够滚动底部。另一种可能的解决方案是将框架设置为在从底部选择时在顶部显示选择器,从顶部选择时反之亦然。出于美学原因,我不太喜欢这种解决方案。我希望有人能找到解决方案,或者至少解释一下为什么它没有按预期工作。

非常感谢, 汤姆

当通过拾取器视图视图视图(桌子)进行视图

【问题讨论】:

    标签: iphone uitableview scroll


    【解决方案1】:

    是的,tableview 不会滚动到它包含的单元格之外。只需在显示选取器视图时调整 tableview 的大小,以免它们重叠。

    【讨论】:

      【解决方案2】:

      尝试获取 tableView 的框架,然后移动它。

      在 UITableViewController 中:

      //change the height value to accomodate the pickerView
      CGRect newFrame = CGRectMake(0.0f, 0.0f,320.0f,240.0f); //guessing on height of 240
      self.tableView.frame = newFrame;
      

      完成后放回去

      CGRect oldFrame = CGRectMake(0.0f,0.0f,320.0f,480.0f);
      self.tableView.frame = oldFrame;
      

      你总是可以把它放在一个漂亮的动画块中让它向上或向下滑动。

      祝你好运

      【讨论】:

      • 是的,感谢你们两位的建议和快速回复。减小框架的尺寸是最好的解决方案。当然,做一个小动画会让它变得光滑。 -汤姆
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多