屏幕适配:
iphone4/s 3.5英寸时代:直接用代码计算frame;
ipad:autoresizng (让一个控件跟着他父控件的变化而变化) 能解决父子关系
iphone5/c/s 4英寸时代:autolayout(相对定们) 能解决与兄弟和父节点的关系
iphone6/plus:sizeclasses(为各种屏幕显示不同的东西,对各种屏幕能单独进行autolayout)
autoresizng-->autolayout(任何控件都可以产生约束关系)-->sizeclasses(仅仅是对屏幕进行了分类,真正排布UI元素还得使用autolayout)
ios8(sizeclasses)不再有横竖屏概念,只有屏幕尺寸的概念
不再有具体尺寸的概念,只有抽象尺寸(不具体)的概念,把宽度和高度各分为三种情况
三种抽象尺寸
Compact:紧凑(小)
Any:任意
Regular:宽松(大)
宽高都可以用以上三种进行组合
以上三种可以组合出九种尺寸(宽度三种*高度三种)
所有iphone竖屏时都是Wc hR
sizeClassess的使用
1),选择控件,点击下边的any any,选择尺寸(横或竖);
2),右边属性面板-->第二个选项,
下面的install左边的"+"增加尺寸; 如 wC , hC 表示宽高都为紧凑的情况下才出现;
把storyBoard切换到对应的尺寸,然后UI控件的右下方为尺寸添加约束
预览屏幕:
(右上角的两个重叠的圈)"show the Assistant editor " --->"automatic"--->"preview"-->“选择相应的storyboard”-->左下角的"+"号选择尺寸
为不现的尺寸添加不同的图片:
点击项目中 ”images.xcassets“-->选择相应的图片-->"点击右边的属性窗口"-->在width 和 height选择应的尺寸
sizeClassess还可以设置在不同屏幕显示不同的字体(点击字体左边的+)
为不同的尺寸添加不同的屏幕:
*:任意 any
+:宽松 regular
-:紧凑 compact
注意:在any any设置的属性会被其他尺寸继承下来(最好不要用any any ,容易造成约束混乱)
继承性:
* *:其他八种都会继承它
* -:”- - ,+ - “会 继承 * -的约束
+ *: "+ - ,+ +"会继承 + *
....
IOS屏幕尺寸常识:
普通图片:非retina屏幕,iphone/3G/3GS IPAD/IPAD2
@2x:retina屏幕,iphone4/4s/s/5s/5c/6 IPAD3/4
@3x有什么特点:retain屏幕,iphone6 plus
@3x:如果代码中写的100,运行的时候则为300
pt:点坐标系
px:像素,屏幕上显示数据的基本点
@2x:320*480 * 2 =640*960 px
@3x:414*736 * 3 =1242*2208 px 渲染后的真实像素:1080*1920 /iphone 6 plus
@3x需要注意的地方:显示的时候会进行缩放
1242/1080=1.15
例如:
如果在屏幕中放置一个 115*115的view
则在真实情况下会被显示成100*100的view(115/1.5=100)
ios sizeclasses
最新推荐文章于 2020-03-23 15:12:01 发布