IOS系列——适配问题

iOS 16适配屏幕旋转强制转屏切换大总结 iOS 16旋转屏幕强制转屏方法总结 阅读详情
代码写的话 首先要判断 屏幕尺寸和系统版本
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
//判断是都是IOS7系统
#define isIOS7 [[UIDevice currentDevice].systemVersion doubleValue] >= 7
//获取当前设备的尺寸
#define SELFUISCREENHEIGTH [UIScreen mainScreen].bounds.size.height
#define SELFUISCREENWIDTH  [UIScreen mainScreen].bounds.size.width




用两个xib文件来适配

在原有的项目中  新建一个xib 我们可以把它命名为 ViewController_iphone5.xib 并且与相应的类做关联。具体方法为

1、选中xib 然后看xib里面  左边的透明装黄色方格  File"s  owner  然后选择 在输入框中选择与之关联的类

2、


这样就使用这个xib


代码使用两个xib文件 

if (iPhone5) {
        self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iphone5" bundle:nil] autorelease];
    }else{
        self.viewController = [[[ViewController alloc] initWithNibName:@"ViewController_iphone" bundle:nil] autorelease];
    }

我们再来说说 xib里面的很多属性:

比如说新建一个xib 里面给的尺寸是3.5 或者 4.0  而且是不可变的,这个应该怎么办呢 在 右边框里面的


  1. 这里面的size属性就可以自由变换你需要的尺寸
  2. orientation是设置view横向显示还是竖向显示
  3. status是上面20像素的那个状态栏的选项
  4. top bar 如果页面需要导航条,可以在这里面选择,然后做适配
  5. Bottom bar 是如果下面也分页栏 可以在这里选择在做适配


我们在来说一下 IOS7 和之前的系统坐标的区别 ,自从ios7出来以后,各种适配问题都来了,

ios7系统的坐标是从屏幕的左上角的,也就是说状态栏也在坐标之内,即使说页面添加了导航条  坐标也还是从最左上角开始

IOS7之前的系统坐标算法是不一样的,他的坐标是从状态栏下面开始的,如果说页面上也加了导航条,那么坐标就是从导航条下面开始算的

我们来看这张图

右边的xib是考虑到导航条的宽度来设置的按钮位置,但是跑出来的效果确实左边的。但是如果在ios7系统里面跑程序就不会有这个情况。

为什么会出现这个问题呢? 

那是因为导航条直接把这个xib向下推移了导航条的高度。这样就会有问题出现了:我们在xib最下面放一个按钮,在ios7之前的系统版本运行出来的话,就看不到这个按钮所以在做布局的时候,要考虑到这个问题。

一般来讲,如果是这样的话,我们在xib里面做的时候是选择把xib下面的空余出来来达到铺满全屏的效果,但是在ios7里面空余出来运行出来的就是空余出来的,所以我们需要做一下调整,具体方法可以参照http://blog.youkuaiyun.com/u011332675/article/details/17584237

不过在这里要说的一点就是 增量有些时候你是看不到的,这是为什么呢  在第一栏的下面 有一个  Use Autolayout 选项,要把勾 去掉 还有一点需要提醒的是:要选择页面里面的元素来做增量,直接选 中view是没用的

别再为PT100测温发愁了!手把手教你用ADS1247+STM32搞定高精度温度采集(附完整源码) 本文详细介绍了如何利用ADS1247高精度ADC与STM32微控制器构建PT100测温系统,实现±0.1℃的温度测量精度。内容涵盖硬件设计、寄存器配置、SPI通信优化及温度换算算法,特别适合工业自动化和精密仪器领域的嵌入式开发人员参考。 阅读详情

相关推荐

VIPER22A实战:从零搭建15W非隔离电源,附BUCK电路调试心得

本文详细介绍了使用VIPER22A芯片从零搭建15W非隔离电源的全流程,重点解析BUCK电路设计与调试技巧。通过核心参数计算、PCB布局优化和效率提升方案,帮助工程师快速掌握DC-DC电源设计要点,实现高效稳定的电源转换。

redis7keeper的博客 668

[转]React 监听屏幕尺寸变化(转载请删除括号里的内容)

React 监听屏幕尺寸变化 1.在componentDidMount()中加入监听器 componentDidMount() {this.screenChange();} screenChange() {window.addEventListener('resize', this.resize);} resize()方法中,定义了屏幕尺寸变化后需要执行的代码 2.在constructor中绑定resize() constructor(props) { ...

jiaoqi6132的博客 1116

QT插件学习系列(一) 初识QtPlugin

QT插件学习系列(一) 初识QtPlugin 1、 概述 为什么我们要学习插件化,其和 windows 导出 dll 有什么区别呢? 导出的动态库如果缺失,程序不能运行。但插件可以。 同一套代码,即可分别在 windows 下和 linux 下生成插件。 QT 本身提供两种插件支持,一种称为高级 API,一种称为低级 API。 高级API的作用是扩展 QT 程序本身,需要子类化 QT 提供的插件基类,例如现有的 QTSqlDriver,因此你可也以编写自己的 QTStyle 扩展 QT。 低级

L_Andy的专栏 3113

IOS系列——IOS7适配的问题

看到很好的一篇文章,讲的很好 http://www.ifun.cc/blog/2013/09/28/gua-pei-ios7kai-fa/

Engandend的专栏 949

STM32F405实战:手把手教你实现永磁同步电机无感FOC控制(附完整工程文件)

本文详细介绍了基于STM32F405微控制器实现永磁同步电机无感FOC控制的完整实战方案。文章从硬件搭建、CubeMX配置入手,逐步讲解了FOC核心算法、SVPWM调制,并重点阐述了如何结合HFI高频方波注入与滑模观测器(SMO)实现全速域无感控制。内容涵盖算法原理、代码实现、参数整定及调试技巧,并附有完整工程文件,为开发者提供从理论到实践的全面指导。

sun99的博客 266

【福建dem】原始高程数据tif格式

DEM(Digital Elevation Model,数字高程模型)是一种地理信息系统中的关键数据集,它提供了地表地形的三维信息,通常用于分析地貌特征、模拟水文过程、规划建设、灾害预警等多个领域。这种数据对于地理分析非常有价值,例如,它可以用于计算坡度、坡向、地形粗糙度等地形特征,或者进行洪水模拟、地质灾害评估、太阳能辐射分析等。“福建dem原始高程数据tif格式”是研究和理解福建省地形地貌的重要资源,结合GIS工具,可以揭示丰富的地理信息,为科研、工程和决策提供有力支持。

鸿业远图科技 943

iOS 10 开发适配系列 之 权限Crash问题

其实,在iOS10对用户的安全和隐私的增强,在申请很多私有权限的时候都需要添加描述. 要想解决这个问题,只需要在info.plist添加NSContactsUsageDescription的key, value自己随意填写就可以,好在这些key的名字在Xcode 8中已经有了自动补全。添加一...

216

BitLocker恢复密钥丢失?从原理到实战的完整解锁与系统重生指南

磁盘加密技术是数据安全的核心防线,它通过对存储设备上的数据进行编码,确保未经授权的用户无法访问。其原理主要基于加密算法(如AES)与密钥管理机制,在操作系统启动前或数据读写时进行实时加解密。这项技术的核心价值在于防止设备丢失或被盗后的数据泄露,尤其对于笔记本电脑和移动设备至关重要。典型的应用场景包括企业办公电脑、存有敏感信息的个人设备以及符合合规性要求的行业。当使用Windows系统自带的BitLocker加密功能时,若因硬件改动、系统更新等触发保护机制,用户可能会面临需要输入恢复密钥才能启动的困境。本文聚

weixin_34006965的博客 489

IOS 10 适配系列_4_ 权限Crash问题

之前的系列文章里面有描述过,这里详细解说下。 之前写了一个扫描插件,最近调用扫扫描相机,崩了。试试看调用相册,又特么崩了。然后看到控制台输出了以下信息: This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's

Kiven's Program Space 3699

RK3568平台(平台总线篇)Gsensor STK8BA50

Gsensor,即加速度传感器(Accelerometer),是一种用于测量物体加速度的电子设备。以下是其关键点:1.工作原理MEMS技术:大多数Gsensor基于微机电系统(MEMS),通过检测质量块的位移来测量加速度。压电效应:部分Gsensor利用压电材料在受力时产生电压的特性来测量加速度。2.主要功能加速度测量:测量物体在X、Y、Z三个方向上的加速度。倾斜检测:通过重力加速度判断设备的倾斜角度。运动检测:识别设备的运动状态,如静止、移动、晃动等。震动检测:感知设备的震动或冲击。

weixin_49303682的博客 480

ROS Motion Planning运动规划库安装方法及进阶使用方法详细介绍

​今天偶然发现了一个优质的运动规划库:ai-winter/ros_motion_planning,比较适合从事ROS移动机器人运动规划研究领域的小伙伴学习和使用,相比于莱斯大学Kavraki实验室提供的开源的著名运动规划库OMPL、或着我之前介绍过的zhm-real开源的zhm-real/MotionPlanning和zhm-real/PathPlanning运动规划库,今天介绍的ROS Motion Planning运动规划库与ROS机器人中常用的Navigation导航框架的兼容性更好,库中的运动规划

慕羽★的博客 5577

iOS10开发适配系列 之 权限崩溃问题

注意,添加的时候,末尾不要有空格 我们需要打开info.plist文件添加相应权限的说明,否则程序在iOS10上会出现崩溃。

兵仔贾---的专栏 1763

Ardupilot无人船(车)mavros自主控制

rover 4.4。

超维空间科技的博客 3229

iOS 10 适配系列-权限Crash问题

升级 iOS 10 之后目测坑还是挺多的,记录一下吧,看看到时候会不会成为一个系列。 直入正题吧 今天在写 Swift 3 相关的一个项目小小练下手,发现调用相机,崩了。试试看调用相册,又特么崩了。然后看到控制台输出了以下信息: This app has crashed because it attempted to access privacy-sensitive data without

zzzzzdddddxxxxx的专栏 511

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

[绍棠] iOS 10 开发适配系列 之 权限Crash问题

升级 iOS 10 之后目测坑还是挺多的,记录一下吧,看看到时候会不会成为一个系列。 今天在调项目, 发现用最新的iOS10,发现调用相机,崩了。试试看调用相册,又特么崩了。然后看到控制台输出了以下信息: This app has crashed because it attempted to access privacy-sensitive data without a usage desc

绍棠的博客 749

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

适配iOS9问题汇总

iOS 9适配过程中出现的问题,收集的链接资料供大家学习分享。 http://wiki.mob.com/ios9-对sharesdk的影响(适配ios-9必读)/ http://www.cocoachina.com/ios/20150929/13598.html(iOS9 适配技巧) http://www.cocoachina.com/ios/20150703/12392.html (iOS 9...

Landen2011的博客 97

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: IOS系列——Block的基本使用
下一篇: IOS系列——导航条的多种操作
Engandend
博客等级 码龄15年 18粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值