类似ipad上的split,左边的tableview控制右边显示不同的视图

来源:互联网 发布:it外包服务介绍 编辑:程序博客网 时间:2024/04/29 16:37

类似ipad上的split,左边的tableview控制右边显示不同的视图

       最近要做一个项目,这个项目在ipad上运行,需要页面横向放置,首先,先记录一下怎么让程序运行后页面横向显示,我设置了一个基类的视图控制器,下边就称作base页面。

这个控制器里,填写一段这样的代码,所有的页面都继承自这个视图控制器,起到所有的页面都是横向展示

#pragma mark -

#pragma mark -继承自这个类,以便于页面自动就会横屏


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{

    

    return (toInterfaceOrientation ==UIInterfaceOrientationLandscapeRight) || (toInterfaceOrientation ==UIInterfaceOrientationLandscapeLeft);

}


为了达到这个效果,我最开始的时候打算在页面右边放置view,而不是viewController。因为view controller会自动的创建一个全屏的view,导致不成功。但是一个项目都是用view搭建的,难免感觉不妥当,怕给自己挖坑,变得越挖越深,最后自己都埋不上了。但是,没办法啊,项目催的紧,于是,还是拿view做了一下。发现其实view确实可以达到这个效果,但是自己内心总是感觉不踏实。于是,在各种开发群,还有一些认识的人各种问。终于,还是有位大神给我一个正确的指导,看来还是自己理解的东西不够深刻,特此记录一下

继续在base页面加约束,为了让所有的页面都是靠在左边导航的一侧的页面,添加下边代码

- (void)loadView{

    

   // [super loadView];  主意这里不要调用,不然会创建一个全屏的view

   

    UIView *view = [UIViewcreateView];

    view.frame =CGRectMake(295/2.f,64, kScreenWidth -295/2.f, kScreenHeight - 64);

    

   self.view = customView;

}


原来是因为每次调用[super loadView],所以才创建的全屏的view,所以我们不调用这个,自己创建一下视图,达到想创建的视图的大小,实现后的效果就是


1 0