Scroll滚动空白条问题

来源:互联网 发布:哪里申请免费域名 编辑:程序博客网 时间:2024/05/24 01:48

在做share时,我们都遇到这样一个问题,在界面上依次加一个navigationbar,scrollview,tabelview,scrollview滚动,开始的时候上面会出现一个空白条条。
就像这样:
这里写图片描述
有一种解决方法是,把[self.view addSubview : scrollview]放到[self.view addSubview :tabelview]的后面。从scrollview和tabelview的Fram可以看出
加scrollview时,坐标的(0,0)是从mainScreen (包括导航栏在内)的(0,0)算起,而加tabelview的时候,(0,0)却从导航栏下面(不包括导航栏)算起。并且,改变navigationbar的透明度时,(0,0)的位置还会改变,太任性了!
scrollview=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 65, width, 200)];
scrollview.contentSize=CGSizeMake(width*imagecount, 0);
scrollview.backgroundColor=[UIColor grayColor];
scrollview.pagingEnabled=YES;
scrollview.delegate=self;
tableview=[[UITableView alloc]initWithFrame:CGRectMake(0, 200, width, height) style:UITableViewStylePlain];
tableview.delegate=self;
tableview.dataSource=self;
[self.view addSubview:tableview];
[self.view addSubview:scrollview];
[self.view addSubview:pagecontrol];

效果:
这里写图片描述

还有一种方法是,在创建这个viewcontroller对象时,在这个对象下面手动调用viewdidload方法,坐标原点(0,0)一直都是从mianScreen.bounds的(0,0)算起,也不会出现之前的空白条。但为什么会这样,我也无法解释。
Homeview *home=[[Homeview alloc] init];
[[UINavigationBar appearance]setBarTintColor:[UIColor blueColor]];

[home viewDidLoad];    //navigationItem和tabBarItem的title都是self.titlehome.title=@"主页";home.tabBarItem.image = [[UIImage imageNamed:@"homebutton1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];home.tabBarItem.selectedImage = [[UIImage imageNamed:@"homebutton2"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];UINavigationController *nvhome = [[UINavigationController alloc] initWithRootViewController:home];

结果:
这里写图片描述

—— 刘萌

0 0
原创粉丝点击