我正在尝试为 UIButton 中的 textLabel 设置换行模式。
self.scheduleButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
NSLineBreakByWordWrapping
在 iOS 6.0 之前将不可用。
self.scheduleButton.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
将在 iOS6 之前工作,但 XCode 抛出错误说,它不识别UILineBreakModeWordWrap
.
如何确保在 iOS 6 之前完全忽略 UILineBreakModeWordWrap 代码。
我已经制作了一个宏来检查操作系统版本,我会使用 respondsToSelector,如果它是一个方法的情况,但这是一个枚举类型。
SYSTEM_VERSION_LESS_THAN(@"6.0")
我在这里使用它,但在 if-else 场景中,但它仍然无法正常工作,因为 XCode 仍然会告诉我 UILineBreakModeWordWrap 无法识别。
有没有办法在预处理级别知道操作系统版本?
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
我制作的这个宏只会添加 Objective C 代码来确定操作系统类型,这意味着检查将在运行时进行。
但因为这个 XCode 不会忽略UILineBreakModeWordWrap
.