处理ios6到ios7后UITableView的两个显示问题
2014-04-29 16:47
429 查看
1.在ios6开发的项目,当用ios7的虚拟机显示的时候会出现UINavigationItem遮挡TableView的问题:
下面是对比显示效果:
![](https://img-blog.csdn.net/20131112185956062?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsZGNhdGxlbGU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
我的处理方法是:
在UITableViewController 的viewwillapper方法中加入以下代码:
[objc] view
plaincopyprint?
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
if([self respondsToSelector:@selector(edgesForExtendedLayout)])
[self setEdgesForExtendedLayout:UIRectEdgeBottom];
}
#endif
//如果是ios6 要手动设置frame的大小
if ([[[UIDevice currentDevice]systemVersion]floatValue] < 7.0)
{
[self.editBagView setFrame:CGRectMake(5, 37, 310, 118)];
}
}
2.ios7还有一个问题是UItableview的第一个section会离头部很大的距离:会出现下面的情况:
![](https://img-blog.csdn.net/20131112193017312?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsZGNhdGxlbGU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20131112192518796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2lsZGNhdGxlbGU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
原因和ios7的设计有关
有两种方法可以解决,大家可以试一下:
如果你的TableView没有刷新的话可以用下面的代码解决:
在viewWillLoad中添加:
[objc] view
plaincopyprint?
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
//设置header of section grouped
self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 10.f)];
如果TableView会刷新页面可以在:viewWillApper中添加相同功能代码:
[objc] view
plaincopyprint?
![](https://code.csdn.net/assets/CODE_ico.png)
![](https://code.csdn.net/assets/ico_fork.svg)
CGRect frame = self.tableView.tableHeaderView.frame;
frame.size.height = 10;
UIView *headerView = [[UIView alloc] initWithFrame:frame];
[self.tableView setTableHeaderView:headerView];
页面就会显示正常。
下面是对比显示效果:
我的处理方法是:
在UITableViewController 的viewwillapper方法中加入以下代码:
[objc] view
plaincopyprint?
![](https://code.csdn.net/assets/CODE_ico.png)
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
{
if([self respondsToSelector:@selector(edgesForExtendedLayout)])
[self setEdgesForExtendedLayout:UIRectEdgeBottom];
}
#endif
//如果是ios6 要手动设置frame的大小
if ([[[UIDevice currentDevice]systemVersion]floatValue] < 7.0)
{
[self.editBagView setFrame:CGRectMake(5, 37, 310, 118)];
}
}
2.ios7还有一个问题是UItableview的第一个section会离头部很大的距离:会出现下面的情况:
原因和ios7的设计有关
有两种方法可以解决,大家可以试一下:
如果你的TableView没有刷新的话可以用下面的代码解决:
在viewWillLoad中添加:
[objc] view
plaincopyprint?
![](https://code.csdn.net/assets/CODE_ico.png)
//设置header of section grouped
self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.tableView.bounds.size.width, 10.f)];
如果TableView会刷新页面可以在:viewWillApper中添加相同功能代码:
[objc] view
plaincopyprint?
![](https://code.csdn.net/assets/CODE_ico.png)
CGRect frame = self.tableView.tableHeaderView.frame;
frame.size.height = 10;
UIView *headerView = [[UIView alloc] initWithFrame:frame];
[self.tableView setTableHeaderView:headerView];
页面就会显示正常。
相关文章推荐
- (转)处理ios6到ios7后UITableView的两个显示问题
- (转)处理ios6到ios7后UITableView的两个显示问题
- 转)处理ios6到ios7后UITableView的两个显示问题
- IOS7学习之路二(处理ios6到ios7后UITableView的两个显示问题)
- IOS7学习之路二(处理ios6到ios7后UITableView的两个显示问题)
- (ios7) 解决Ios7中,Navigatebar 显示在主View中,和ios6 不一致问题
- (ios7) 解决Ios7中,Navigatebar 显示在主View中,和ios6 不一致问题
- ios下使用VFL兼容ios6和ios7下的头部显示问题
- 页面有两个RecyclerView无法正常显示且镶嵌ScrollView滑动异常问题
- UITableview 兼容IOS6 和IOS7的方法
- (ios7) 解决代码布局View, ios7 中 subView 高度增加StatusBar20dp的问题,保证Ios6,ios7代码一致
- iOS7适配问题 UITableView上方出现空白
- iOS UItableView显示问题
- iOS6,iOS7文字长度计算问题,可变长文字的自动适配显示
- 关于UITableView 中两个困惑的问题
- iOS7 UITableView做成类似iOS6风格
- UITableView添加到UIViewController的view时显示问题
- ios7的UITableView实现ios6的圆角效果
- Android捕捉图像后在SurfaceView上变形显示问题的处理
- IOS之UITableView的header显示问题