ios5和ios6的兼容性



我在ios5 vs ios6

的不兼容方面有问题

当我使用ios5

进行项目时
label.textAlignment = UITextAlignmentCenter;

然后更新为ios6

label.textAlignment = NSLineBreakByTruncatingTail;

在IOS5安装的设备上运行代码后,就会给我错误。

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

预先感谢!

nstextalignment的可接受值是:

  • nstextalignmentleft
  • nstextalignmentcenter
  • nstextalignmentright
  • nstextalignmentjustified
  • nstextalignmentnatural

前三个中的任何一个将在iOS 5和6下同等地工作。

NSLineBreakByTruncatingTail并不是真正有效的文本对齐类型,尽管由于C枚举的方式看起来像NSTextAlignmentNatural

因此,您需要在整个台上切换到NSTextAlignmentLeft或进行功能检查。值得庆幸的是,文本对齐类型的变化是支持将归因字符串推向UILabel(以及其他地方)的新能力,因此可以使您有所挂起。

,例如

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

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

最新更新