导航控制器的根控制器 是滚动性&普通的frame区别

当一个控制器有navigationBar&tabBar:

1.当导航控制器根控制器是tableViewController时,tableView 的frame原点是屏幕左上角,当向tableView上添加子控件到(0,0)点时,会添加到导航条左下角,即会有64的差距,这是由于可扩展区域引起的,本质是tableView继承scrollView,有contentSize的原因,总之使用有滚动特性的控件时,注意此因素影响,动态观察tableView的层次结构会发现有一层scrollView--->UITableViewWrapperView

当向导航控制器的根view上添加子控件到(0,0)点时,会在屏幕左上角

2.当导航控制器根控制器是ViewController时,View 的frame原点是屏幕左上角,当向View上添加子控件到(0,0)点时,会添加到屏幕左上角

3.tabBar同理会有49的差距

时间: 2024-10-26 05:21:19

导航控制器的根控制器 是滚动性&普通的frame区别的相关文章

UIWindow不使用代理如何实现根控制器的跳转(页面跳转的实现)

1.单独跳转页页面 #pragma mark - changeViewController控制器跳转 - (void)changeViewController{ LoginPageController * login = [[LoginPageController alloc]init]; UIWindow * window = [UIApplication sharedApplication].keyWindow; window.rootViewController = login; } @e

导航栏控制器和标签栏控制器(UINavigationController和UITabBarController)混用

很多时候,在UI设计方面同时需要使用导航控制器和标签栏控制器,这时,需要掌握如何设计结合使用这两种不同控制器.比如手机QQ,程序有三个标签栏(分别为消息.联系人.动态),同时在选择某个联系人或者会话时,会进入聊天的子页面,因此这里同时使用到了标签栏控制器和导航控制器. 我目前所知道有以下方法可实现上述的结合使用效果. 根视图是标签栏控制器,然后每页标签栏又有一个根视图控制器为导航栏控制器的标签,如下代码所示 // 消息 MessageViewController* msg = [[Message

iOS结合导航控制器和标签栏控制器

<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="objc">- (void)initTabBar { // 初始化主页 HomePageViewController *homePage = [[HomePageViewController alloc]init]; UINavigati

iOS 回到rootViewController根控制器视图

直接上代码 - (void)backToRootViewController{ UIViewController* vc = [MainViewController instance].navigationController.visibleViewController; if ([vc isEqual:[MainViewController instance]]) return; if (vc.presentingViewController) { [vc dismissViewControl

如何找到根控制起找到根控制器及获得文件夹路径

// 全局队列 异步下载图片 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { dispatch_async(dispatch_get_global_queue(0, 0), ^{ NSLog(@"%@", [NSThread currentThread]); // 耗时操作: 放在全局队列,异步执行 // 1. url, 确定一个网络上的资源路径 NSURL *url = [NSURL URLWith

[BS-20] 导航控制器和视图控制器在添加控制器的区别

导航控制器和视图控制器在添加控制器的区别 1. 因导航控制器拥有导航栈,有一个普通视图控制器都没有的数组viewControllers,加入该数组中的视图控制器默认以push的方式进入导航栈.导航控制器有个[UINavigationController alloc] initWithRootViewController:rootVC]; 的初始化方法,调用该方法相当于把rootVC加入数组viewControllers的第一个位置,作为栈底部的rootVC是不会被pop出去的,与导航控制器共生死

02---按钮的设置 控制器拥有导航栏包装一层导航控制器 添加子控制器 UIBarButtonItem导航按钮 设置导航栏UINavigationBar主题 设置状态栏样式

一.按钮的设置 1.设置背景图片 [btn setBackgroundImage:image forState:UIControlStateNormal]; 2.内部UIImageView 1> 设置内部UIImageView的图片 [btn setImage:image forState:UIControlStateNormal]; // 不能写成btn.imageView.image = image; 2> 调整内部图片的内容模式 self.imageView.contentMode =

导航控制器和标签栏控制器

1. 导航控制器 1.1. 导航控制器的组成 1.2. 导航控制器的创建 1.3. 改变导航控制的关联视图 1.4. 实现导航 1.5. 添加标题 1.6. 设置导航栏颜色 1> 使用setBackgroudColor属性设置 2> 使用tintColor属性进行设置 1.7. 添加左右按钮 1> 静态添加按钮 2> 动态添加按钮 1.8. 设置返回按钮 2. 标签栏控制器 2.1. 标签栏控制器的创建 1> 静态创建标签栏视图控制器 2> 创建一个Tabbed App

被导航控制器包装的控制器的View的y值问题

最近一直在纠结问题,为什么有时候被导航控制器包装的控制器的View的y值有时候是64,有时候是0,觉得很奇怪,于是研究了一下,发现有个属性可以改变View的y值,那就是translucent(属于导航栏的)这个属性可以设置y值,这个属性的作用是用来设置导航栏是否半透明,默认值为Yes(半透明效果),为NO则不透明,下图展示了一下Yes和No的区别: 要想禁用translucent属性,可以在Storyboard中选中导航栏,然后在Attribute Inspectors中,取消transluce