我想知道是否可以将UITableView
向下移动50像素。如果我使用的是UITableViewController
,那么这通常需要在UIViewController
上添加一个表视图来实现,但是我能否保留UITableViewController
并实现这个效果呢?
我想知道是否可以将UITableView
向下移动50像素。如果我使用的是UITableViewController
,那么这通常需要在UIViewController
上添加一个表视图来实现,但是我能否保留UITableViewController
并实现这个效果呢?
我曾经遇到同样的问题,而上面的答案并没有起作用。以下方法可行:
[self.tableView setContentInset:UIEdgeInsetsMake(50,0,0,0)];
self.tableView.contentInset = UIEdgeInsets(top: 84, left: 0, bottom: 0, right: 0)
- infinity_coding7我的解决方案是重写tableViewcontroller的方法viewWillLayoutSubviews
- (void) viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];
self.tableView.frame = CGRectMake(0,0,CGRectGetWidth(self.view.frame),300);
}
在各种情况下,无论屏幕方向如何变化,这款产品都能为我提供出色的表现。
UITableView
实际上是一个 UIScrollView
。这意味着你可以滚动到想要的位置。此链接 显示了如何实现此功能,包括示例代码和讨论。
编辑: 为了将整个表格视图下移,只需使用:
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);
viewDidLoad:
方法中。如果你想将其与按钮绑定,那么将其放置在按钮的 IBAction
中等等。 - msgambel如果您想在表格顶部添加一个UI元素,为什么不直接将其设置为 tableHeaderView
呢?
UILabel *someLabel;
// configure label
self.tableView.tableHeaderView = someLabel;
由于表格视图是由UIScrollView支持的,因此您可以使用内容偏移量进行移动。
self.tableView.contentOffset = CGPointMake( x, y);
你可能想要在UIView动画中包装它
Swift 2.2:
将tableView在UITableViewController中向下移动:
let edgeInsets = UIEdgeInsetsMake(20, 0, 0, 0)
self.tableView.contentInset = edgeInsets
UIViewController
,然后添加一个UITableView
。另一种解决方案可能是设置表格的标题视图(reference),但在这种情况下,请记住此视图将与表格一起滚动。有关UITableViewController
限制的更多信息,请参见本文:“Clean table view code”。UITableViewController实际上是UIViewController,只是多了一些可以覆盖的方法,对于表格操作很有用。因此,你可以做任何你想做的事情。
明白UITableViewController的实际作用后,你就可以随心所欲地进行操作了。
http://cocoawithlove.com/2009/03/recreating-uitableviewcontroller-to.html