我有关于ios5与ios6不兼容的问题
当我使用ios5处理我的项目时
label.textAlignment = UITextAlignmentCenter;
然后更新为ios6
label.textAlignment = NSLineBreakByTruncatingTail;
一旦我在ios5安装的设备上运行我的代码,就会给我错误。
我即将将我的应用程序上传到appstore,但我希望我的应用程序也支持ios5。我将如何处理ios5和ios6!
提前致谢!
答案 0 :(得分:1)
acceptable values for NSTextAlignment are:
前三个中的任何一个在iOS 5和6下同样有效。
NSLineBreakByTruncatingTail
实际上并不是一种有效的文本对齐类型,尽管它在运行时看起来像NSTextAlignmentNatural
,因为C枚举的排列方式。
因此,您需要全面切换到NSTextAlignmentLeft
或进行功能检查。值得庆幸的是,文本对齐类型的更改支持将属性字符串推送到UILabel
(以及其他地方)的新功能,以便为您提供挂起的内容。
E.g。
if([label respondsToSelector:@selector(attributedText)])
label.textAlignment = NSTextAlignmentNatural;
else
label.textAlignment = NSTextAlignmentLeft;
虽然else在技术上是多余的,因为NSTextAlignmentLeft
是默认值。