处理Xcode 5上的文本对齐折旧

时间:2014-01-17 06:29:16

标签: ios iphone xcode5

我知道使用NSTextAlignment作为替代方案是可行的...但我的应用程序支持ios 4+ NSTextAlignment仅在ios 6中可用。如何在xcode 5上为旧版本处理它?

6 个答案:

答案 0 :(得分:2)

NSArray *versionComponentsArray = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];

if ([[versionComponentsArray objectAtIndex:0] intValue] >= 6) {
    label.textAlignment = NSTextAlignmentCenter;
} else {
    label.textAlignment = UITextAlignmentCenter;
}

答案 1 :(得分:1)

试试这个

#ifdef __IPHONE_6_0
# define TEXT_ALIGNMENT_CENTER NSTextAlignmentCenter
#else
# define TEXT_ALIGNMENT_CENTER UITextAlignmentCenter
#endif

label.textAlignment = TEXT_ALIGNMENT_CENTER;

答案 2 :(得分:1)

NSTextAlignment 以及现已弃用的 UITextAlignment 都是enums -

 0 represents left
 1 represents center
 2 represents right

因为这对于两个枚举都是一致的,而不是检查操作系统的版本操作系统并在运行时做出不必要的决定,只需声明自己的typedef枚举并使用它,只要上面列出的三个是你需要的。 ( NSTextAlignment有额外的枚举,UITextAlignment没有

示例 - 将.h放在需要使用的位置

typedef enum MyTextAlignment : NSInteger {
     MyTextAlignmentLeft,
     MyTextAlignmentCenter,
     MyTextAlignmentRight,
} MyTextAlignment;

编辑: NSTextAlignment 自OSX 10.0(大约2001年)以来一直存在,我非常怀疑枚举的0,1,2会发生变化。此外,如果要管理大量文件,可以将 typedef enum 放在自己的头文件中,然后将标头导入预编译的头文件(.pch)然后您就可以访问它了从任何文件中进行相应的“查找和替换”。

答案 3 :(得分:1)

[label setTextAlignment:[self textAlignment]];


- (int)textAlignment
{
NSArray *versionComponentsArray = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];

   if ([[versionComponentsArray objectAtIndex:0] intValue] >= 6) {
     return NSTextAlignmentCenter;
    } else {
     return UITextAlignmentCenter;
   }
}

答案 4 :(得分:1)

更改120个甚至更多文件,

1)制作一个UITextField类别 2)覆盖setTextAlignment方法,如下所示,你可以进一步编辑左右对齐。

-(void)setTextAlignment:(NSTextAlignment)textAlignment
{

  if (textAlignment == UITextAlignmentCenter)
  {
     NSArray *versionComponentsArray = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];

    if ([[versionComponentsArray objectAtIndex:0] intValue] >= 6) {
        self.textAlignment = NSTextAlignmentCenter;
    } else {
        self.textAlignment = UITextAlignmentCenter;
    }
  }
}
  1. 在项目的.pch文件中导入此类别
  2. Voila,就是这样,你需要做的。

答案 5 :(得分:0)

我不知道iOs4,但是iOs5处理NSTextAlignment就好了,我刚刚更改了我的所有代码并且我的iPad第一代(5.1我认为?)处理得很好。尝试一下,它可能正常工作