如何完美适配iPhone4、5、6尺寸问题

作者: _方丈 | 来源:发表于2016-07-29 10:17 被阅读1425次

一个适配宏 希望能给大家带来帮助!
用法 :建议把宏放在头文件中或放在一个类别使用,KIphoneSize4/5/(6/7)/(6p/7p) = KIphoneSize_Widith(这里给出6的宽度尺寸) 相应的比例宽度尺寸

/**
 *  调用 KIphoneSize_Widith(100) 6的宽度 会根据456给出不同宽度,
    高度同上
 *  @param iphone6p/7p 100*1.104
 *  @param iphone6/7  100
 *  @param iphone5s 100*0.853
 *  @param iphone4s 100*0.853
 *  @return
 */
//适配宏 根据屏幕尺寸来判断当前手机型号
#define KScreenSize [UIScreen mainScreen].bounds.size
#define IsIphone6P KScreenSize.width==414
#define IsIphone6 KScreenSize.width==375
#define IsIphone5S KScreenSize.height==568
//456字体大小  KIOS_Iphone456(iphone6p,iphone6,iphone5s,iphone4s) 
#define KIOS_Iphone456(iphone6p,iphone6,iphone5s,iphone4s) (IsIphone6P?iphone6p:(IsIphone6?iphone6:(IsIphone5S?iphone5s:iphone4s)))
//宽  KIphoneSize_Widith(iphone6)  高 KIphoneSize_Height(iphone6)
#define KIphoneSize_Widith(iphone6)  (IsIphone6P?1.104*iphone6:(IsIphone6?iphone6:(IsIphone5S?0.853*iphone6:0.853*iphone6)))
#define KIphoneSize_Height(iphone6)  (IsIphone6P?1.103*iphone6:(IsIphone6?iphone6:(IsIphone5S?0.851*iphone6:0.720*iphone6)))

代码中使用

在调用时
高度可以是KIOS_Iphone456(iphone6p,iphone6,iphone5s,iphone4s) 也可以单个调用KIphoneSize_Height(iphone6)按比例大小


46094C95-4C3D-4E74-941A-81F3B02F838A.png

//mas 约束中使用

Snip20160808_7.png

如果喜欢敬请关注,更好的东西共享给大家!

相关文章

网友评论

  • Hello_kid:#define SIZE_SCALE_IPHONE5(x) (x * ([UIScreen mainScreen].bounds.size.width / 320))
    #define SIZE_SCALE_IPHONE6(x) (x * ([UIScreen mainScreen].bounds.size.width / 375))
    您好,这俩个宏是适配单一机型吗
    _方丈:@Ruiz678 以6的尺寸320基数算比率,宏相信可以看懂的
  • 55e9d8cdc8ea:博主,有个问题想请教你一下。为什么我显示的是:使用未申报的iPhone6?
    _方丈:@良药丶 个人问题吧 ,和这段代码没关系
  • 无夜之星辰:直接#define KScreenSize.width [UIScreen mainScreen].bounds.size.width有什么问题吗
  • 无夜之星辰:KScreenSize最前面的K是什么意思
    JackYao:@无夜之星辰 是不同的,但是如果各个屏幕出现相同的界面布局你如果用bounds就需要乘上基于屏幕尺寸与实际屏幕尺寸的比例才能做到完全相同的界面布局
    无夜之星辰:@JackYao bounds在不同的屏幕下,值应该也不同吧
    JackYao:@无夜之星辰 C的开发规范,常量要加K,如果直接用bouns就不是全机型适配了,你只适配单一手机屏幕,不过现在用的最多的不是这种相对布局了,一般都用autolayout了

本文标题:如何完美适配iPhone4、5、6尺寸问题

本文链接:https://www.haomeiwen.com/subject/plhzjttx.html