看起来在iOS 6中UITextAlignmentCenter
被弃用了。
虽然我仍在使用它并且它能正常工作,但是会有一个警告。
我该如何解决这个问题?
label.textAlignment = UITextAlignmentCenter;
谢谢。
iOS 6中可以使用
label.textAlignment = NSTextAlignmentCenter;
UIKit
中的 NSText.h
文件。在那里,如果目标操作系统是 iPhone,则将 1 定义为居中,否则将其定义为右对齐。更有理由使用 NSTextAlignmentCenter
。 - Todd Lehman所以如果您升级到iOS6,您就可以轻松完成了;只需从切换到,并享受新的字符串。
但是,如果您正在处理一个复杂的项目,并且希望地球不要在您的脚下移动太多,请暂时使用旧版本,并为多个版本适应您的代码,例如:
// This won't compile:
if ([label respondsToSelector:@selector(attributedText:)])
label.textAlignment = UITextAlignmentCenter;
else
label.textAlignment = NSTextAlignmentCenter;
NSTextAlignmentCenter
通过它。(好吧,在这里定制编译器的行为可能有一种方法,但这似乎是不明智的。)#import <UIKit/UIKit.h>
才能了解NSText...常量)...#ifdef NSTextAlignmentCenter // iOS6 and later
# define kLabelAlignmentCenter NSTextAlignmentCenter
# define kLabelAlignmentLeft NSTextAlignmentLeft
# define kLabelAlignmentRight NSTextAlignmentRight
# define kLabelTruncationTail NSLineBreakByTruncatingTail
# define kLabelTruncationMiddle NSLineBreakByTruncatingMiddle
#else // older versions
# define kLabelAlignmentCenter UITextAlignmentCenter
# define kLabelAlignmentLeft UITextAlignmentLeft
# define kLabelAlignmentRight UITextAlignmentRight
# define kLabelTruncationTail UILineBreakModeTailTruncation
# define kLabelTruncationMiddle UILineBreakModeMiddleTruncation
#endif
你可以这样做:
label.textAlignment = kLabelAlignmentCenter;
And this:
label.lineBreakMode = kLabelTruncationMiddle;
等等。
由于这些UIText / NSText更改可能会在多个控件中弹出,因此此方法非常方便。
(警告:作为上述稳定地球爱好者的一员,我已经使用旧版本进行了测试,但尚未测试iOS6。)
NSTextAlignmentCenter
可以代替UITextAlignmentCenter
,以下是其它可以替换的选项:
#ifdef __IPHONE_6_0 // iOS6 and later
# define UITextAlignmentCenter NSTextAlignmentCenter
# define UITextAlignmentLeft NSTextAlignmentLeft
# define UITextAlignmentRight NSTextAlignmentRight
# define UILineBreakModeTailTruncation NSLineBreakByTruncatingTail
# define UILineBreakModeMiddleTruncation NSLineBreakByTruncatingMiddle
#endif
#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0)
# define ALIGN_CENTER NSTextAlignmentCenter
#else
# define ALIGN_CENTER UITextAlignmentCenter
#endif
UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 50, 30)];
label.text = @"There is no spoon";
label.textAlignment = ALIGN_CENTER;
[self addSubview:label];
你不必这两个都做。Xcode 4.5可以在iOS 5中编译NSTextAlignmentCenter
等内容。
UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 150, 40)];
[label1 setText:@"Your String"];
[label1 setBackgroundColor:[UIColor clearColor]];
[label1 setNumberOfLines:0];
[label1 sizeToFit];
//For Center Alignment
[label1 setTextAlignment:NSTextAlignmentCenter];
//For Right Alignment
[label1 setTextAlignment:NSTextAlignmentRight];
//For Left Alignment
[label1 setTextAlignment:NSTextAlignmentLeft];
// Add the label into the view
[self.view addSubview:label1];
labelName.textAlignment=NSTextAlignmentLeft;
Swift 3:
label.textAlignment = NSTextAlignment.center
在 iOS 6 或更高版本中
使用此值:
self.lbl_age.textAlignment=NSTextAlignmentCenter;