IOS Label 利用runtime实现 字体实现竖排

如何实现label字体的竖直排列


IOS Label 利用runtime实现 字体实现竖排_第1张图片

首先给Label添加一个Category 在.h中给label 添加一个 NSString类型的属性  (vertivalText) 

.m中实现get 和set 方法
  1. - (NSString *)verticalText
  2. {
  3. // 利用runtime 添加属性- (void)setVerticalText:(NSString *)verticalText
  4. return objc_getAssociatedObject(self, @selector(verticalText));
  5. }
  6. - (void)setVerticalText:(NSString *)verticalText
  7. {
  8. objc_setAssociatedObject(self, &verticalText, verticalText, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
  9. NSMutableString *mutableString = [[NSMutableString alloc] initWithString:verticalText];
  10. NSInteger count = mutableString.length;
  11. for (int i = 1; i < count; i++) {
  12. [mutableString insertString:@"\n" atIndex:i * 2 - 1];
  13. }
  14. self.text = mutableString;
  15. self.numberOfLines = 0;
  16. }

你可能感兴趣的:(IOS Label 利用runtime实现 字体实现竖排)