【发布时间】:2015-12-08 07:17:29
【问题描述】:
我在导航栏和选项卡栏之间放置了一个表格视图,并且只想为表格视图部分实现滚动(换句话说,在我的 iOS 模拟器中,我希望这两个栏始终可见,我应该能够在它们之间滚动我的表格视图)。
已经尝试过来自 SO 帖子的各种建议,恐怕还是会出错。你能告诉我如何解决这个问题 - 过去 1 天我一直在努力解决这个问题!
在表格视图控制器的 viewDidLoad 中,我使用以下代码。早些时候,我也尝试过单独初始化一个滚动视图,但知道表格视图是滚动视图的子类,所以放弃了那个路径......
- (void)viewDidLoad
{
[super viewDidLoad];
// To remove extra separators from the table view to prevent blank rows from showing.
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
// ***** Scroll view implementation *****
[[self tableView] setFrame:CGRectMake(0, self.navigationController.navigationBar.frame.size.height, self.view.frame.size.width, self.view.frame.size.height - self.navigationController.navigationBar.frame.size.height - self.tabBarController.tabBar.frame.size.height)];
[[self tableView] setContentSize:CGSizeMake(self.view.frame.size.width, 2000)];
[self setEdgesForExtendedLayout:UIRectEdgeNone];
self.automaticallyAdjustsScrollViewInsets = YES;
}
事实上,为了进一步测试这一点,我在一个单独的选项卡(在这个 tabbarcontroller 应用程序中)创建了一个滚动视图,到目前为止我只有一个导航栏和一个选项卡栏(没有表格视图)。它的 viewDidLoad 看起来像这样 - 不知何故,那里也没有运气......滚动条从屏幕顶部(而不是从导航栏底部)开始,一直到屏幕底部(而不是直到标签栏的顶部)。很明显我在这里做一些概念上的错误......如果你能帮忙,请感谢!此处输入的数字是实验性的,用于测试这一点,但我确保内容大小大于滚动视图框架...
- (void)viewDidLoad
{
[super viewDidLoad];
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 100, self.view.frame.size.width, 300)];
[scrollView setContentSize:CGSizeMake(self.view.frame.size.width, 1500)];
[self.view addSubview:scrollView];
[self setEdgesForExtendedLayout:UIRectEdgeNone];
self.automaticallyAdjustsScrollViewInsets = NO;
[scrollView setScrollEnabled:YES];
}
最后,当我在模拟器中调试我的应用程序时,奇怪的是对于表格视图选项卡,滚动条确实会暂时从导航栏下方开始出现。但是一旦我触摸触控板进行滚动,它就会消失,并且会出现一个更突出的滚动条,并从屏幕顶部开始到屏幕底部,正如我上面最初提到的那样!
【问题讨论】:
-
在表格视图控制器的 IB 属性检查器中,取消选择顶栏和底栏下的选择,以便表格介于两者之间。注释掉你的其他代码。
-
谢谢@RoryMcKinnel ...抱歉,但您知道我如何更改模拟指标,因为我没有使用情节提要,而是通过代码开发表格视图控制器...再次感谢因为我似乎无法找到如何通过代码更改 IB 属性!
-
我认为你有设置边缘的正确代码。那就是
[set setEdgesForExtendedLayout:UIRectEdgeNone]。如果您使用的是 UITableViewController,我认为这就是您所需要的,并且没有任何框架和内容大小设置,因为它应该由表格视图在布局其单元格时处理。 -
好的,谢谢。不知何故它仍然不起作用 - 相当眼花缭乱 - 将继续尝试......
标签: ios uitableview uiscrollview uinavigationcontroller uitabbarcontroller