ios8 uilabel 自适应适配用代码好吗

Pages: 1/2
主题 : 适配iOS8的时候发现奇怪的问题
级别: 新手上路
可可豆: 21 CB
威望: 21 点
在线时间: 0(时)
发自: Web Page
来源于&&分类
适配iOS8的时候发现奇怪的问题&&&
本帖被 pennyfeng 从 App Store经验交流区 移动到本区()
大家好,请问下我下载了xcode6的gm版进行适配工作但发现无论使用以下2种方法的哪一种1.self.view.frame.size.widthself.view.frame.size.height2.[[UIScreen mainScreen] bounds].size.[[UIScreen mainScreen] bounds].size.在使用6或者6+的模拟器时,得到的效果,依然是和5\5c\5s的尺寸一样的,即 320 * 568请问大家是怎么进行尺寸判定的?关键是,如果这样的话,用代码去写UI的话,不知道该怎么布局啊。。
UID: 166214
可可豆: 1764 CB
威望: 1363 点
在线时间: 682(时)
发自: Web Page
另,移动这个帖子了~
级别: 侠客
可可豆: 738 CB
威望: 738 点
在线时间: 718(时)
发自: Web Page
同问,我这更奇怪
级别: 侠客
可可豆: 738 CB
威望: 738 点
在线时间: 718(时)
发自: Web Page
咋整?新建个工程,打了下log,&&iphone6是对的, iphone6 plus变成414x736???&&如果是原来的旧工程,打的log同楼主。
级别: 新手上路
可可豆: 94 CB
威望: 94 点
在线时间: 224(时)
发自: Web Page
使用[[UIScreen mainScreen] bounds].size.[[UIScreen mainScreen] bounds].size.的确会出问题,建议你使用 self.view.frame.size.widthself.view.frame.size.height这样不会出错的
每次你对我说需求又要改了的时候,我都会拿着刀指着你的脖子说:“我改!”。
级别: 新手上路
可可豆: 94 CB
威望: 94 点
在线时间: 224(时)
发自: Web Page
针对你说的使用代码去写UI:&&&&只要项目要求支持多屏幕的话,使用AutoLayout的话是非常方便(但是AutoLayout只支持&=ios6的),不过ios 6 以下的好像没什么项目还会支持吧。关于用代码来实现AutoLayout的话,方法也是不固定的,有常规的写Constraints的,也有用可视化格式语言写的。具体的就要看你自己界面的需求了!
每次你对我说需求又要改了的时候,我都会拿着刀指着你的脖子说:“我改!”。
级别: 新手上路
可可豆: 94 CB
威望: 94 点
在线时间: 224(时)
发自: Web Page
回 4楼(处男小兵) 的帖子
我使用下面的那种方法刚刚试过了,没有出问题啊?
每次你对我说需求又要改了的时候,我都会拿着刀指着你的脖子说:“我改!”。
级别: 侠客
可可豆: 738 CB
威望: 738 点
在线时间: 718(时)
发自: Web Page
终于找到一个有用的说明,大家分析一下On the physical device, iPhone 6 Plus's main screen's bounds is
and nativeBounds is . There is hardware scaling involved to resize to the physical display.On the simulator, the iPhone 6 Plus's main screen's bounds and nativeBounds are both .In other words... Videos, OpenGL, and other things based on CALayers that deal with pixels will deal with the real
framebuffer on device (or
on sim). Things dealing with points in UIKit will be deal with the
(x3) bounds and get scaled as appropriate on device.The simulator does not have access to the same hardware that is doing the scaling on device and there's no really much of a benefit to simulating it in software as they'd produce different results than the hardware. Thus it makes sense to set the nativeBounds of a simulated device's main screen to the bounds of the physical device's main screen.iOS 8 added API to UIScreen (nativeScale and nativeBounds) to let a developer determine the resolution of the CADisplay corresponding to the UIScreen.
级别: 新手上路
可可豆: 94 CB
威望: 94 点
在线时间: 224(时)
发自: Web Page
回 7楼(glietsoft) 的帖子
[UIScreen mainScreen].nativeBounds[UIScreen mainScreen].nativeScale
每次你对我说需求又要改了的时候,我都会拿着刀指着你的脖子说:“我改!”。
级别: 侠客
可可豆: 738 CB
威望: 738 点
在线时间: 718(时)
发自: Web Page
回 8楼(处男小兵) 的帖子
应该可以用这两个做为判断依据
Pages: 1/2
关注本帖(如果有新回复会站内信通知您)
论坛技术问题应该发布到? 正确答案:CocoaChina问答
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版ios8推出也有一段时间了,由于时间比较紧,所以没去学习ios8的新特性, 随着iphone6,6+的推出,ios屏幕适配是一个大问题,如何成功适配各种尺寸以及ipad呢? 苹果公司为了解决这个问题给出了新技术sizeclass 下面是我对sizeclass学习的一些笔记,希望对大家有用:
1&屏幕适配的发展历程 代码计算frame -& autoreszing(父控件和子控件的关系ios6) -& autolayout(任何控件都可以产生关系ios7) -& sizeclass(ios8)
2& sizeclass的作用:ios8中为了解决屏幕适配,引入了一个全新的概念,sizeclass 而这个使用的时候不需要判断屏幕的尺寸,也没有横屏和竖屏的概念,只有(Compact、Any,Regular)的概念!在Xcode新建的项目中,看到的storyboard界面下面栏目中,有一个(wAny,hAny)点击之后会出现一个可选择的类似九宫格的表格,这个就是一个屏幕选择器,可以对不同屏幕进行选择!
仅仅是对屏幕进行了分类, 真正排布UI元素还得使用autolayout 不再有横竖屏的概念, 只有屏幕尺寸的概念 不再有具体尺寸的概念, 只有抽象尺寸的概念 把宽度和高度各分为3种情况 而3*3的组合就是9中情况
1) Compact : 紧凑(小)
2) Any : 任意
3) Regular : 宽松(大)
4) 符号代表 : Compact : Any : Regular
5) 继承性 (尽量少用*组合,这样很可能会导致冲突) : 其它8种情况都会继承 : 会被- - \ + -继承 : 会被+ - \ + +继承
6) sizeclass和autolayout的作用
sizeclass:仅仅是对屏幕进行了分类(判断屏幕)
autolayout:对屏幕中各种元素进行约束(位置\尺寸)
之前,写项目是手写代码还是使用storyboard的争论,随着苹果公司的指引终于还是有了答案,使用sb吧!iOS8 适配那些事(Size Class 详解1) - 推酷
iOS8 适配那些事(Size Class 详解1)
&在上篇介绍Size Class初探的文章中,我们简单介绍了SIze Class是怎么一回事,以及各个设备对应的Size Class 类型。今天我们接着将SIze Class,看看他是怎么处理在同一个StoryBoard对不同设备之间分别设置约束的。
在开始之前先看看准备工作,需要在View Controller的View上添加两个View。添加约束(Top VIew的高度是View高度的0.6,Bottom View的高度是设备高度的0.4。)
注意:如果忘记怎么添加约束的可以参照我上边的文章:
1.首先拖拽两个视图到Controler View上如下图:
2.选中上边的视图,点击右下角的Pin按钮,设置上、左、右的Sapceing为0,点击下边的Add 3 Constrains按钮就添加上了三个约束。
3.然后点击右下角的Align按钮,添加水平居中约束:
4.打开StoryBoard的左边的Document OutLine ,点击鼠标左键选中TopView,同时按住Ctrl键,拖拽到其Super View上松手会出现一个弹出菜单如下,选择Equal Heights.
5.选中刚刚添加的Constraints在右侧,打开Size Inspactor,修改Multiplier为0.6,如下图:
6.选中Bottom View以相同的方式添加,左、右、下、的Sapceing为0,并使其水平居中:
7、打开StoryBoard的左边的Document OutLine ,点击鼠标左键选中Bottom View,同时按住Ctrl键,拖拽到其Super View上松手会出现一个弹出菜单如下,选择Equal Heights.
8.选中刚刚添加的Constraints在右侧,打开Size Inspactor,修改Multiplier为0.4,如下图
9.选中VIew Controller的View,然后点击右下角的Resolve Auto Layout按钮,在弹出菜单中选择Update Frames按钮。
这是如果打开预览就可以看到,两个视图完美适配,如下图:
可这并不是我们想要的结果,我们希望当手机横屏时,上下视图变成左右排列,左边的视图宽度是屏幕的60%,右边的视图宽度是屏幕的40%。问题来了用一个Storyboard怎么实现呢?Apple通过Size Class帮助我们解决这个问题。在上一篇文章(iOS8 适配那些事(Size Class 初探))中我们简单介绍了一下Size Class,文章链接:&
10、 首先点击Storyboard下边的按钮w Any| h Any 拖拽表格选择如下,这是我们就选择了Size Class为
w Any| h Compact的类型。现在就可以在根约束下对此SizeClass类型做修改了.
11.选中TopVIew 可以看到我们刚刚设置的约束如下:
12.删除掉只剩下Top和Leading Space:
13.类似点击下边的视图约束删除前如下:
14. 删除后只剩下两个约束:
15.然后拖拽视图成下边的样子。
16.好了下边我们就开始添加只属于w Any| h Compact下的约束了,选中左边的View,添加底部约束为0 ,并且垂直居中,修改其宽度为SuperView的60%,
17、类似修改右边的视图的Top Space为0,垂直居中。
19.修改宽度为Super View的40%。
20.选中Controller的View ,然后点击右下角的Resolve Auto Layout按钮,在弹出菜单中选择Update Frames按钮。
21.此时打开预览就实现了我们的需求在竖屏下两个视图上下排列,横屏后视图左右排列。
更过精彩内容请关注微信公众账号: 乐Coding 。我们陆续给大家公布新的iOS8适配方面的内容。
喜欢我们的内容,搜索官方微信公众账号:乐Coding,投稿请发送到:。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致iOS8适配中需要注意的几个问题
在适配iOS8过程中,碰到了一些坑,通过查询资料解决了,而且在过程中也发现了其他的一些需要注意的地方,全都总结出来,也让后来的做iOS8适配的笛子们注意一下。
& & & & &在适配iOS8过程中,碰到了一些坑,通过查询资料解决了,而且在过程中也发现了其他的一些需要注意的地方,全都总结出来,也让后来的做iOS8适配的笛子们注意一下。
& & & &根据苹果的新API,有如下的几个变化:
& & & &1.有一些API被放弃了,包括
& & & & & & *UIApplication中用于注册推送的方法被放弃,,需要使用新的方法.从过去的&registerForRemoteNotificationTypes:变为新的 UI
- (void)registerUserNotificationSettings:(UserNotificationSettings *)notificationS
& & & & & & *UIViewController类中表示方向的方法和属性被放弃,改为使用traits和
& & & & & & *UISearchDisplayController 类被 UISearchController替代;
& & & & & & *GameKit中使用player identifier的方法和属性被放弃。
& & & &2.CLLocationManager的使用方法改变。若要在iOS8中使用该方法,则需要首先在info.plist中增加两个键NSLocationWhenInUseUsageDescription,&NSLocationWhenInUseUsageDescription,至于两个键所对应的值都是NSString类型,可以按照需求进行填写;第二在使用定位功能之前需要先调用请求使用定位功能的方法requestWhenInUseAuthorization 或&requestAlwaysAuthorization。
& & & 3.UITableViewCell的层级发生改变。在iOS7中变为三层的Cell层级在iOS8中再次变为两层。
& & & 4.UIActionSheet和UIAlertView进行了升级,支持使用block的方式进行回调。
你最喜欢的Pages: 1/4
主题 : iPhone6发布了,请问手写的代码如何进行屏幕适配?
级别: 新手上路
可可豆: 150 CB
威望: 151 点
在线时间: 599(时)
发自: Web Page
来源于&&分类
iPhone6发布了,请问手写的代码如何进行屏幕适配?&&&
iPhone6:iPhone6 plus:因为之前的应用的布局都是用代码写的,应该如何进行适配呢?转StoryBoard也不现实用auto layout也不行,因为版本最低支持是iOS5---------------------------17:22更新----------------------------下了最新的GM版,测试了下,布局没有变,不用重写了[ 此帖被zingos在 17:23重新编辑 ]
级别: 侠客
可可豆: 738 CB
威望: 738 点
在线时间: 718(时)
发自: Web Page
顶,同问,跪求大牛解答
级别: 精灵王
可可豆: 5404 CB
威望: 5464 点
在线时间: 1142(时)
发自: Web Page
还支持iOS5干什么,iOS8发布以后iOS6都可以不支持了。解决方法只能if(){}else{}吧
级别: 新手上路
可可豆: 94 CB
威望: 94 点
在线时间: 224(时)
发自: Web Page
重构吧,我们公司的项目都重构了。。。
每次你对我说需求又要改了的时候,我都会拿着刀指着你的脖子说:“我改!”。
级别: 骑士
UID: 207568
可可豆: 2845 CB
威望: 1827 点
在线时间: 376(时)
发自: Web Page
之前还在嘲笑android开发的同学,一个项目要适配N种机型,现在也轮到我们了。同求,有没有哪个大神已经有好的方法解决适配问题,重构 不要弄死人
级别: 新手上路
可可豆: 4 CB
威望: 4 点
在线时间: 0(时)
发自: Web Page
分辨率只是等比例的放大了而已,不用做什么特别的处理。能够适应iPhone5,就能适应iPhone6.就是要辛苦UI,多做一套@3x的图标了。
级别: 新手上路
可可豆: 94 CB
威望: 94 点
在线时间: 224(时)
发自: Web Page
回 5楼(luckyjerry) 的帖子
这倒是真的。。。。。。。。。
每次你对我说需求又要改了的时候,我都会拿着刀指着你的脖子说:“我改!”。
级别: 新手上路
可可豆: 94 CB
威望: 94 点
在线时间: 224(时)
发自: Web Page
回 4楼(mllxbb) 的帖子
只要不是低版本的系统的话,适配还是挺好解决的啊,比如只要是iOS6及以上的Autolayout非常方便啊,不管是代码写还是xib
每次你对我说需求又要改了的时候,我都会拿着刀指着你的脖子说:“我改!”。
级别: 侠客
可可豆: 738 CB
威望: 738 点
在线时间: 718(时)
发自: Web Page
@3x ????? 是这样?
级别: 新手上路
可可豆: 150 CB
威望: 151 点
在线时间: 599(时)
发自: Web Page
那还是等出了xcode的虚拟机再看看吧
Pages: 1/4
关注本帖(如果有新回复会站内信通知您)
论坛技术问题应该发布到? 正确答案:CocoaChina问答
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版

我要回帖

更多关于 ios8 uilabel 自适应 的文章

 

随机推荐