




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】ios7中关于导航切换影响UIScrollView的问题
在iOS7中,如果某个UIViewController的self.view第一个子视图是UIScollView,同时当这个UIViewController被push或initWithRootController成为UINavigationController控制的Controller时,这个UIViewController的view的子视图UIScollView的所有子视图,都会被下移64px。
这个下移64px的前提是navigationBar和statusBar没有隐藏。因为为statusBar默认的Height是20px,而navigatiBar
默认的Height是44px。下面来比较一下实例:
不使用导航的界面跳转
1.在AppDelegate.m文件中:-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
self.window=[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]];
self.window.backgroundColor=[UIColorwhiteColor];
//下面两行为增加的代码
ViewController*rootViewController=[[ViewControlleralloc]init];
[self.windowsetRootViewController:rootViewController];
[self.windowmakeKeyAndVisible];
returnYES;
}
2.在ViewController.m中:-(void)viewDidLoad
{
[superviewDidLoad];
UIScrollView*scrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(30.0,
64.0,260.0,300.0)];
[scrollViewsetBackgroundColor:[UIColorredColor]];
UIView*view=[[UIViewalloc]initWithFrame:scrollView.bounds];
[viewsetBackgroundColor:[UIColorblueColor]];
[scrollViewaddSubview:view];
[self.viewaddSubview:scrollView];
}
3.运行后的结果:这种情况下,scrollView并未受影响。4.现在使用UINavigationController,
将开始AppDelegate.m增加的那两行代码修改成:
ViewController*rootViewController=[[ViewControlleralloc]init];
UINavigationController*navController=[[UINavigationControlleralloc]
initWithRootViewController:rootViewController];
[self.windowsetRootViewController:navController];
5.现在再次运行程序:如结果显示,scrollView背景色为蓝色的子视图位置自动下移了。而这个下移的距离刚好是64.0px。解决方法:
第一种:在ViewController的init的方法中增加一行代码:self.automaticallyAdjustsScrollViewInsets=NO;
第二种:让UIScrollView不要成为ViewController的View的第一个子视图。具体操作:将viewDidLoad方法修改成如下:-(void)viewDidLoad
{
[superviewDidLoad];
UIView*firstSubView=[[UIViewalloc]initWithFrame:self.view.bounds];
[self.viewaddSubview:firstSubView];
UIScrollView*scrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(30.0,
64.0,260.0,300.0)];
[scrollViewsetBackgroundColor:[UIColorredColor]];
UIView*view=[[UIViewalloc]initWithFrame:scrollView.bounds];
[viewsetBackgroundColor:[UIColorblueColor]];
[scrollViewaddSubview:view];
[self.viewaddSubview:scrollView];
}
第三种:将UIScorllView的子视图上移64.0px。修改viewDidLoad方法:UIScrollView*scrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(30.0,
64.0,260.0,300.0)];
[scrollViewsetBackgroundColor:[UIColorredColor]];
CGRectviewFrame=CGRectMake(0,-64.0,CGRectGetWidth(scrollView.frame),
CGRectGetHeight(scrollView.frame));
UIView*view=[[UIViewalloc]initWithFrame:viewFrame];
[viewsetBackgroundColor:[UIColorblueColor]];
[scr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专利授权借用合同范例
- 空间异质性和作物生长状况对农田遥感识别方法的影响
- 个人财务顾问合同范例
- 基于BNN的水质分类方法研究及监测系统设计
- 加工车床租售合同范例
- 乡村水泥修路合同范例
- 产品续签合同范例
- 兴泽公司机械租赁合同范例
- 基于深度学习的胃癌CT成像分割方法研究
- 黄淮海平原农田生态系统服务多功能性评价研究
- 宁骚版《公共政策学》课后答案
- 氧气安全标签
- 不经历风雨怎么见彩虹》教学设计
- 二年级有余数的除法口算题1000道
- (综合治理)修复工程指南(试行) - 贵州省重金属污染防治与土壤修复网
- 员工就餐签到表
- A-level项目介绍(课堂PPT)
- 证明银行账户公户转个人户
- 航海计算软件---ETA计算器
- 光伏电站运维手册
- 半导体及集成电路领域的撰写及常见问题
评论
0/150
提交评论