首页 > 其他 > 详细

导航控制器切换影响UIScrollView布局

时间:2015-12-31 12:14:58      阅读:331      评论:0      收藏:0      [点我收藏+]

ios7 导航控制器切换影响UIScrollView布局的问题:


如结果显示, scrollView 的子视图位置自动下移了。 而这个下移的距离刚好是 64.0px。


解决方法:

=====================

   第一种:在 ViewController 的 init 的方法中增加一行代码:


Obj-c代码 收藏代码

self.automaticallyAdjustsScrollViewInsets = NO;  


=====================

第二种: 让UIScrollView 不要成为 ViewController 的 View 的第一个子视图。具体操作:将 viewDidLoad方法 修改成如下:


Obj-c代码 收藏代码

- (void)viewDidLoad  

{  

[super viewDidLoad];  

UIView *firstSubView = [[UIView alloc] initWithFrame:self.view.bounds];  

[self.view addSubview:firstSubView];  

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(30.0, 64.0, 260.0, 300.0)];  

[scrollView setBackgroundColor:[UIColor redColor]];  

UIView *view = [[UIView alloc] initWithFrame:scrollView.bounds];  

[view setBackgroundColor:[UIColor blueColor]];  

[scrollView addSubview:view];  

[self.view addSubview:scrollView];  

}  



=====================

第三种:将 UIScorllView 的子视图上移 64.0px 。修改 viewDidLoad 方法:


Obj-c代码 收藏代码

UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(30.0, 64.0, 260.0, 300.0)];  

[scrollView setBackgroundColor:[UIColor redColor]];  

CGRect viewFrame = CGRectMake(0, -64.0, CGRectGetWidth(scrollView.frame),  CGRectGetHeight(scrollView.frame));  

UIView *view = [[UIView alloc] initWithFrame: viewFrame];  

[view setBackgroundColor:[UIColor blueColor]];  

[scrollView addSubview:view];  

[self.view addSubview:scrollView];  



=====================

第四种:设置导航栏的透明属性。

self.navigationController.navigationBar.translucent = YES

改变导航栏透明度,也会影响,这个可以根据自己的实际需求进行调整。

导航控制器切换影响UIScrollView布局

原文:http://www.cnblogs.com/luqinbin/p/5090980.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!