ios 5和ios 6的兼容性

时间:2012-11-08 00:50:42

标签: ios ios5 ios6

我有关于ios5与ios6不兼容的问题

当我使用ios5处理我的项目时

label.textAlignment = UITextAlignmentCenter;

然后更新为ios6

label.textAlignment = NSLineBreakByTruncatingTail;

一旦我在ios5安装的设备上运行我的代码,就会给我错误。

我即将将我的应用程序上传到appstore,但我希望我的应用程序也支持ios5。我将如何处理ios5和ios6!

提前致谢!

1 个答案:

答案 0 :(得分:1)

acceptable values for NSTextAlignment are

  • NSTextAlignmentLeft
  • NSTextAlignmentCenter
  • NSTextAlignmentRight
  • NSTextAlignmentJustified
  • NSTextAlignmentNatural

前三个中的任何一个在iOS 5和6下同样有效。

NSLineBreakByTruncatingTail实际上并不是一种有效的文本对齐类型,尽管它在运行时看起来像NSTextAlignmentNatural,因为C枚举的排列方式。

因此,您需要全面切换到NSTextAlignmentLeft或进行功能检查。值得庆幸的是,文本对齐类型的更改支持将属性字符串推送到UILabel(以及其他地方)的新功能,以便为您提供挂起的内容。

E.g。

if([label respondsToSelector:@selector(attributedText)])
    label.textAlignment = NSTextAlignmentNatural;
else
    label.textAlignment = NSTextAlignmentLeft;

虽然else在技术上是多余的,因为NSTextAlignmentLeft是默认值。