【问题标题】:No scrolling occurs when UITableView scrollToRowAtIndexPath is invoked调用 UITableView scrollToRowAtIndexPath 时不会发生滚动
【发布时间】:2010-05-17 04:17:31
【问题描述】:

我的视图包含一个包含 6 行的简单 TableView 和一个在单击时调用 doScroll 的按钮。我对doScroll() 的目标是简单地滚动到第 5 个单元格,使其位于表格视图的顶部。

- (void)doScroll: (id)sender
{
    NSIndexPath *index = [NSIndexPath indexPathForRow:4 inSection: 1];
    [m_tableView scrollToRowAtIndexPath:index atScrollPosition:UITableViewScrollPositionTop animated:YES];
}

然而,当doScroll 被调用时,tableview 只会轻微滚动。我怀疑这与滚动视图的大小有关。所以我尝试在滚动之前增加m_tableview.contentsize 的高度。然而,在我这样做之后,根本不会发生滚动......

视图控制器是一个简单的 UIViewController,通过 IBOutlet 引用表视图。出于某种原因,默认的基于导航的应用程序的滚动按预期工作,其中控制器是 UITableViewController

【问题讨论】:

    标签: iphone cocoa-touch


    【解决方案1】:

    UITableView 将阻止您向上滚动空白区域。在表格底部添加足够的有效内容,以便单元格可以向上滚动。使用表格的边界减去单元格的高度以获得更准确的框架:

    myTable.tableFooterView = [[[UIView alloc] initWithFrame:CGRectMake(0,0,320,480)] autorelease];
    

    您也可以只使用contentInset 属性的bottom

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-05
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      相关资源
      最近更新 更多