UITableView 第一行在顶栏下被截断
Posted
技术标签:
【中文标题】UITableView 第一行在顶栏下被截断【英文标题】:UITableView first rows are cut-off under top bar 【发布时间】:2013-12-04 06:48:57 【问题描述】:我有一个UITabBarController
和两个UITableViews
,都是在情节提要中创建的。
问题在于,在第二个 tableview 中,表格的前几行位于顶部栏下方,第一个 tableview 不会发生这种情况,即使我更改视图的顺序,第一个也会完美运行,并且第二个会出现问题,所以现在完美运行的那个会出现同样的问题,因为它是标签栏控制器的第二项。
我没有太多代码要显示,因为我没有以编程方式创建表格视图。
【问题讨论】:
我建议您以编程方式创建 tableView,以便您可以更好地控制两个表。您可以为这两个表格设置不同的框架大小并避免此问题。 感谢您的回答...我接受了 user1550961 的回答,禁用“扩展边缘”选项解决了问题 【参考方案1】:根据您的描述不确定,但我想到了几种可能性:
在 IB 中检查您的视图控制器属性检查器。寻找 View Controller 下的“Extend Edges”选项,并取消选中“Under Top” Bars”(如果选中)。
在 ios7 中,UIScrollView 和所有 自动调整内容插入和偏移的子类,有时不是很好。你 可以尝试在代码或 IB 中禁用它(请参阅链接 如何:iOS 7 -- navigationController is setting the contentInset and ContentOffset of my UIScrollView)
【讨论】:
感谢您的回答,我取消选中“扩展 Egdes”选项,它起作用了!谢谢! 这也适用于我,但只有在UITabBarNavigationController
上未选中时才能使用
这个有帮助!!【参考方案2】:
对于任何新创建的 iOS >7.0 应用程序,我建议您更深入地了解自动布局。对于我所有的旧 iOS 6 应用,我都是这样解决的:
在你的 UITableViewController 界面中:
bool _hasStatusBar;
bool _hasStatusBarHeight;
UIView *_blendView;
在您的UITableViewController
实现文件中:
-(void)viewWillAppear:(BOOL)animated
_hasStatusBar = NO;
_blendView = nil;
[self.tableView reloadData];
-(void)viewWillDisappear:(BOOL)animated
_hasStatusBar = NO;
_blendView = nil;
- (void) viewDidLayoutSubviews
// WTF APPLE!?
if (!_hasStatusBar)
int topBarOffset = 20;
_hasStatusBar = YES;
// Fix for iOS 7 overlaying status bar
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
CGRect viewBounds = self.view.bounds;
_blendView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, viewBounds.size.width, topBarOffset)];
[_blendView setBackgroundColor:COLOR_MAIN];
[_blendView setOpaque:YES];
[_blendView setAlpha:1.00];
UIView *whityMacWhite = [[UIView alloc] initWithFrame:CGRectMake(0, 0, viewBounds.size.width, topBarOffset)];
[whityMacWhite setBackgroundColor:[UIColor whiteColor]];
[whityMacWhite setOpaque:NO];
[whityMacWhite setAlpha:0.80];
[_blendView addSubview:whityMacWhite];
[self.view.superview addSubview:_blendView];
【讨论】:
以上是关于UITableView 第一行在顶栏下被截断的主要内容,如果未能解决你的问题,请参考以下文章