use*_*123 190 label alignment ios
似乎UITextAlignmentCenter
在iOS 6中已弃用.
我仍然使用它并且效果很好,但它会发出警告.
我怎样才能解决这个问题?
label.textAlignment = UITextAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)
谢谢.
maj*_*oat 393
在iOS6中你可以使用
label.textAlignment = NSTextAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
Wie*_*nke 44
该labelAlignment
属性变化可能与苹果的引入NSAttributedStrings更多iOS的控制,因此需要改变UIText ...属性NSText ...性质.
所以,如果你升级到iOS6,你就是三叶草; 只需切换UITextAlignmentCenter
到NSTextAlignmentCenter
享受花哨的新弦乐.
但是如果你正在处理一个复杂的项目并希望地球不会在你的脚下移动太多,你可能想要坚持使用旧版本一段时间,并使你的代码适应多个版本,如下所示:
// This won't compile:
if ([label respondsToSelector:@selector(attributedText:)])
label.textAlignment = UITextAlignmentCenter;
else
label.textAlignment = NSTextAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)
上述方法适用于新方法 ; 你得到警告,但一切都运行良好.但是当编译器看到它不知道的常量时,它会变成红色并停在其轨道上.没有办法偷偷溜过NSTextAlignmentCenter
它.(好吧,可能有一种方法可以在这里自定义编译器的行为,但似乎不可取.)
解决方法是添加一些条件预处理器定义.如果你把这样的东西放在你的类的h文件中(或者可能是在导入的常量文件中 - #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
Run Code Online (Sandbox Code Playgroud)
…你可以这样做:
label.textAlignment = kLabelAlignmentCenter;
Run Code Online (Sandbox Code Playgroud)
还有这个:
label.lineBreakMode = kLabelTruncationMiddle;
Run Code Online (Sandbox Code Playgroud)
等等.
由于这些UIText/NSText更改可能会出现多个控件,因此这种方法非常方便.
(警告:作为前面提到的稳定爱好者的一员,我已经用旧版本测试了这个版本,但还没有使用iOS6.)
小智 19
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
Run Code Online (Sandbox Code Playgroud)
neo*_*eye 15
#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];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
88738 次 |
最近记录: |