0

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

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

label.textAlignment = UITextAlignmentCenter;

然后更新到ios6

label.textAlignment = NSLineBreakByTruncatingTail;

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

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

提前致谢!

4

1 回答 1

1

NSTextAlignment的可接受值为

  • NSTextAlignmentLeft
  • NSTextAlignmentCenter
  • NSTextAlignmentRight
  • NSTextAlignmentJustified
  • NSTextAlignment自然

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

NSLineBreakByTruncatingTail不是真正有效的文本对齐类型,尽管NSTextAlignmentNatural由于 C 枚举的排列方式,它在运行时看起来像。

因此,您需要全面切换NSTextAlignmentLeft或进行功能检查。值得庆幸的是,文本对齐类型的更改支持将属性字符串推送到UILabel(和其他地方)的新功能,这样你就有了一些东西可以挂起。

例如

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

尽管 else 在技术上是多余的,因为NSTextAlignmentLeft它是默认值。

于 2012-11-08T00:58:25.427 回答