在做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.title
home.title=@"主页";
home.tabBarItem.image = [[UIImage imageNamed:@"homebutton1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
home.tabBarItem.selectedImage = [[UIImage imageNamed:@"homebutton2"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UINavigationController *nvhome = [[UINavigationController alloc] initWithRootViewController:home];
结果:
—— 刘萌