向下移动UITableView(UITableViewController)

时间:2011-09-04 17:44:08

标签: iphone ios objective-c uitableview

我只是想知道是否可以将UITableView向下翻页,比方说,可能是50像素。我知道如果我使用UIViewController然后在顶部添加了一个表格视图,这通常会有效,但是我能够这样做并仍然保持为UITableViewController吗?

8 个答案:

答案 0 :(得分:41)

我遇到了同样的问题,上面的答案没有用。这样做了:

[self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)];

答案 1 :(得分:8)

我的解决方案是覆盖tableViewcontroller的方法viewWillLayoutSubviews

- (void) viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];
    self.tableView.frame = CGRectMake(0,0,CGRectGetWidth(self.view.frame),300);
}

在不断变化的方向和所有情况下,我的工作非常出色

答案 2 :(得分:4)

UITableView实际上是UIScrollView。这意味着您可以将UITableView滚动到所需的位置。 This是之前的链接,向您展示如何执行此操作,包括示例代码和讨论。

编辑: 为了将整个表视图向下移动,只需使用:

float yOffset = 50.0f; // Change this how much you want!
tableview.view.frame =  CGRectMake(tableview.view.frame.origin.x, tableview.view.frame.origin.y + yOffset, tableview.view.frame.size.width, tableview.view.frame.size.height);

希望有帮助!

答案 3 :(得分:2)

由于表视图由UIScrollView支持,因此您可以使用内容偏移量移动。

  self.tableView.contentOffset = CGPointMake( x,  y);

您可能想要包装UIView动画

答案 4 :(得分:2)

如果您尝试在表格顶部添加UI元素,为什么不将其设置为tableHeaderView呢?

UILabel *someLabel;

// configure label

self.tableView.tableHeaderView = someLabel;

答案 5 :(得分:1)

如果您需要在tableview后面(或顶部)查看视图,那么您必须改为UIViewController的子类,然后再添加UITableView。 另一种解决方案可能是设置表的标题视图(reference),但在这种情况下,请记住此视图将与表一起滚动。 有关本文UITableViewController限制的详细信息:“Clean table view code”。

答案 6 :(得分:1)

Swift 2.2:

将tableView放在UITableViewController中:

let edgeInsets = UIEdgeInsetsMake(20, 0, 0, 0)
self.tableView.contentInset = edgeInsets

答案 7 :(得分:0)

UITableViewController实际上是一个UIViewController,只是它为你提供了一些覆盖的方法,并且对表动作很有用。所以你可以做任何你想做的事情

检查一下,一旦你明白UITableViewController是什么,你会做任何你想做的事情

http://cocoawithlove.com/2009/03/recreating-uitableviewcontroller-to.html