XCode4.5和它的Constrints

本文介绍XCode4.5中新引入的Constraints特性及其在iOS6.0以上版本的应用情况,并提供了解决低版本iOS设备上运行时出现的问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XCode4.5和它的Constrints

 

1、iOS Deployment Target

刚装好XCode4.5.2的时候(之前一直用的XCode4.3.2),随便建了个工程,添加了一个UILabel,在模拟器中运行,一切正常。

但运行到iPad,提示如下信息

Xcode cannot run using the selected device.

No provisioned iOS devices are availablewith a compatible iOS version. Connect an iOS device with a recent enoughversion of iOS to run your application or choose an iOS simulator as thedestination.

这是因为

iOS Deployment Target 的选项为iOS 6.0,而我的iPad是iOS5.1的,所以将iOS DeploymentTarget改为iOS5.1就可以将程序运行到iPad了。

 

2、Constrints

1)但运行到iPad居然报如下异常:

*** Terminating app due to uncaughtexception 'NSInvalidUnarchiveOperationException', reason: 'Could notinstantiate class named NSLayoutConstraint'

 

*** First throw call stack:……

这是因为XCode4.5多了一个叫Constrints的东西,在iOS 6.0中才有,所以包含了Constrints的工程在低版本iOS设备运行的话,都会异常。

解决方法:在View的属性中,将UseAutoLayout的勾选去掉。

 

2)后来做项目在定制一个UILabel大小的时候,意外发现代码如下代码不起作用:

label.frame = CGRectMake(10, 10, 200,100); //_label是一个UILabel,这样设置后,它的大小居然一点都没变化。

好吧,还是Constrints在作怪,将UseAutoLayout的勾选去掉即可。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值