在 iOS 7 中,如果某个 UIViewController 的 self.view 第一个子视图是 UIScollView, 同时当这个 UIViewController 被 push 或 initWithRootController 成为 UINavigationController控制的Controller时,这个 UIViewController的 view 的子视图 UIScollView 的所有子视图, 都会被下移 64px。
这个下移 64px 的前提是 navigationBar 和 statusBar 没有隐藏。因为为 statusBar 默认的 Height 是 20px,而 navigatiBar 默认的 Height 是 44px。下面来比较一下
实例:
不使用导航的界面跳转
1. 在 AppDelegate.m 文件中:
Obj-c代码 收藏代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
//下面两行为增加的代码
ViewController *rootViewController = [[ViewController alloc] init];
[self.window setRootViewController:rootViewController];
[self.window makeKeyAndVisible];
return YES;
}
2. 在 ViewController.m 中:
Obj-c代码 收藏代码
- (void)viewDidLoad
{
[super viewDidLoad];
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];
}
3. 运行后的结果:
wKioL1M02bjAygEmAABp-pZVp3I608.jpg
这种情况下,scrollView并未受影响。
4. 现在使用 UINavigationController, 将开始 AppDelegate.m 增加的那两行代码修改成:
Obj-c代码 收藏代码
ViewController *rootViewController = [[ViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc]
initWithRootViewController:rootViewController];
[self.window setRootViewController:navController];
5. 现在再次运行程序:
wKiom1M02uuD8SEiAAB48M0Pmhc504.jpg
如结果显示, 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
改变导航栏透明度,也会影响,这个可以根据自己的实际需求进行调整。相关推荐
三极管简单振荡电路实现:从零开始的实战示例
通过一个基础实例,手把手教你如何利用三极管构建简单的振荡电路,深入理解三极管在实际电路中的工作原理与应用技巧。
ios7 中关于导航切换影响UIScrollView的问题
ios7 中关于导航切换影响UIScrollView的问题 2014-03-28 10:20:23 标签:IOS7 导航 UINavigation UIScrollView 影响尺寸 在 iOS 7 中,如果某个 UIViewController 的 self.view 第一个子视图是 UIScollView, 同时当这个 UIViewController 被 push 或 initWithRo
3DGS实战避坑指南:从零搭建到成功训练
本文详细介绍了3D Gaussian Splatting(3DGS)从环境配置到成功训练的实战避坑指南。涵盖git clone的正确使用、依赖安装的隐藏陷阱、CUDA版本兼容性解决方案、首次训练验证、常见报错急救方案、性能优化技巧及可视化调试方法,帮助开发者高效搭建和训练3DGS模型。
OC-scrollview加载多个控制器界面的优化
在开发过程中,经常有一个控制器中多个字控制器界面的管理,如下图: 这种实现方式,很多种,今天主要记录用scrollview实现的方法。并且只加载当前显示界面的数据。 思路: (1)创建3个需要展示的控制器和1个来展示这3个控制器的控制器 (2)把3个控制器添加在主控制器上 (3)在滚动的时候,判断这个字控制是否已经加载过了,没有的话,就加载,有的话,不做处理 优势:可以避...
光电振荡器(OEO):从原理到应用,解锁高频微波信号新纪元
本文深入解析了光电振荡器(OEO)的核心原理与前沿应用。OEO通过巧妙的光-电-光转换机制,利用光学谐振腔产生高频、高纯度、低相位噪声的微波信号,有效突破了传统电子电路的频率瓶颈。文章详细拆解了其工作流程,并探讨了在雷达系统、高速光通信及精密测量等领域的硬核应用价值。
告别手册!S32K3XX的eMIOS实战:从GPT定时到PWM输出,一个通道搞定电机控制
本文深入探讨了NXP S32K3XX系列MCU的eMIOS模块在电机控制中的高效应用。通过单通道实现PWM生成、输入捕获和定时中断三大功能,展示了如何简化BLDC电机控制硬件设计。文章结合RTD库与寄存器级编程,提供动态模式切换和性能优化方案,显著降低CPU负载。
iOS中分段控制器与UIScrollView结合使用
版权声明:本文为博主原创文章,未经博主允许不得转载。 指定根视图: [objc]view plaincopy //设置window的根视图控制器 self.window.rootViewController=[[UINavigationControlleralloc]initWithRootViewControl...
report_delay_calculation/check_timing/report_annotated_parasitics/report_analysis_coverge
如何debug 一颗cell 或一段net 的delay, 常用的办法是用report_delay_calculation 报这颗cell 或这段net, 会得到形式如下的report, 从该report 中可以得到: 表头需要特别关注的是command, 确定report 的对象及加的option; From/To pin: cell 的input pin 和...
页面滚动的时候自动切换导航栏
解决方法: 页面主体设置相同的结构如: 当我们页面下上滑动的时候 利用当前div 的offset().top的值与页面滚动的距离作比较,进而获取当前页面主体显示的是哪个div(class为time的div),进而去对应导航栏上的对应选项,达到切换效果) 代码: $(window).scroll(function(){ var top=document.d
让 RAP 弹窗参数真正变成必填:Excel Upload Action 的两种实现路径
摘要 在RAP应用中,action弹窗参数经常缺乏必填校验,导致用户体验差。本文提出两种解决方案:1)在action实现中手动校验,简单但交互不流畅;2)通过root abstract entity和abstract BDEF建模,利用field(mandatory)实现框架级校验,推荐此长期方案。后者将约束集中到模型层,使UI与执行期校验一致,特别适合ABAP Cloud环境。以Excel导入为例,强制填写备注和明确选择试运行,可避免审计问题,提升系统可靠性。
YOLO11 改进、魔改|分组残差自注意力GRSA,通过分组残差优化 QKV 计算、指数空间映射优化位置偏差,在大幅降低自注意力模块参数和计算量的同时,增强特征关系与位置信息的表征能力
【摘要】研究人员提出GRSA(分组残差自注意力)机制,解决Transformer在图像超分辨率任务中效率与性能难以兼顾的问题。GRSA通过分组残差层减少自注意力参数冗余,同时采用指数空间相对位置偏差优化位置信息表征。实验表明,GRSA在降低50%参数量的同时保持模型性能,适用于目标检测和图像分割任务。在YOLO系列模型中集成GRSA可提升小目标检测精度,代码实现已开源,详细部署教程见相关视频与GitHub资源。该机制为轻量化Transformer模型提供了高效解决方案。
导航控制器切换影响UIScrollView布局
ios7 导航控制器切换影响UIScrollView布局的问题: 如结果显示, scrollView 的子视图位置自动下移了。 而这个下移的距离刚好是 64.0px。 解决方法: ===================== 第一种:在 ViewController 的 init 的方法中增加一行代码: Obj-c代码
从零搭建运行Pytorch版pointNet++模型全流程及个性化数据集训练测试可视化
从零搭建运行Pytorch版pointNet++模型全流程及个性化数据集训练测试可视化
3步配置IQKeyboardManager:彻底解决iOS键盘遮挡问题
在iOS开发中,键盘遮挡输入框是影响用户体验的常见痛点。用户点击输入框时,弹出的键盘经常遮挡文本视图,导致用户无法看到正在输入的内容。IQKeyboardManager作为GitHub上超过40k星标的优秀开源库,提供了无代码、自动化的键盘管理解决方案。本文将深入解析IQKeyboardManager的工作原理,提供从基础配置到高级优化的完整指南,帮助开发者彻底解决键盘遮挡问题。 ## 问题-解
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
UIkit基本框架
本文包含了IOS界面开发中的常用控件以及其他相关知识,持续更新中
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
分段控制器UISegmentedControl的使用、同一个控制器中实现多个View的切换、addChildViewController等方法的使用...
本文先讲解简单的分段控制器UISegmentedControl的使用,然后具体讲解它最常使用的场景:同一个控制器中实现多个View的切换。 文章构思: 1、先直接讲解一张UI效果图的四种实现方式。 2、对UISegmentedControl类的各种属性和各种方法的讲解。 UISegmentedControl控件的很大的使用场景基本像下面这张图显示的一样,在同一个控制器中...
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
iOS中左右滑动切换,滑动标签页导航的设计思路
iOS中左右滑动切换,滑动标签页导航的设计思路iOS开发中经常(几乎每个APP都含有这样的页面吧,几乎!UI设计师也都是这样抄来抄去…..)demo见Github:https://github.com/zhengwenming/SliderTab估计很多人都会说,直接用第三方就可以了,很多人封装过,很好用。而且这样的页面用第三方2分钟搞定,省时省力。 笔者也曾用过第三方,但是屡屡出
UIScrollView添加多个UIViewController并滑动
UIScrollView添加多个UIViewController,并进行左右滑动,相关代码如下: @interface DiscoverHomeViewController ()<UIScrollViewDelegate>{ DiscoverHotViewController *_hotVc; DiscoverPageViewController *_disco...
UIScrollView顶部留有64的空白
今天在使用UIScrollView时,在scrollView里添加了控件。明明添加的控件的frame的y值设置的是0,但是添加的控件总是往下偏移64 。后经过查阅资料发现,原来是automaticallyAdjustsScrollViewInsets这个属性的问题。
iOS随机颜色
#import @interface UIColor (RandomColor) +(UIColor *) randomColor; @end #import "UIColor+RandomColor.h" @implementation UIColor (RandomColor) +(UIColor *) randomColor { CGFloat hue = ( arc4r
iOS 真机不能显示图片问题
iOS 动画Animation详解, UIView动画(UIView属性动画,UIViewTransition动画,UIView Block动画),CALayer动画(CABasicAnima...)
iOS 动画Animation详解, UIView动画(UIView属性动画,UIViewTransition动画,UIView Block动画),CALayer动画(CABasicAnima, CAKeyframeAnimation, CATransition, CAAnimationGroup) // // FirstVC.m // LessonAnimation // // Creat
AFNetWorking能做什么
AFNetwork是一个轻量级的网络请求api类库。是以NSURLConnection, NSOperation和其他方法为基础的。 下面这个例子是用来处理json请求的: NSURL *url = [NSURL URLWithString:@"https://alpha-api.app.net/stream/0/posts/stream/global"]; NSURLRequest *r
iOS UICollectionView详解
// // ViewC.m // LessonUICollectionView // // Created by lanouhn on 14-9-16. // Copyright (c) 2014年 vaercly@163.com 陈聪雷. All rights reserved. // #import "ViewC.h" #import "CLCollectionViewCell.h"
1202



被折叠的 条评论
为什么被折叠?



