iOS - Label文字豎排

Paste_Image.png
前言:

有的需求會(huì)給出文字豎排的方式,下面給出兩種思路來(lái)實(shí)現(xiàn)這種效果.一是為UILabel添加分類,添加一個(gè)文字豎排的屬性;而是為NSString添加分類,添加一個(gè)文字豎排的方法- (NSString *)VerticalString

方法一(UILabel添加分類):
#import <UIKit/UIKit.h>

@interface UILabel (Extension)
@property (nonatomic) NSString *verticalText;
@end
#import "UILabel+Extension.h"
#import "objc/Runtime.h"

@implementation UILabel (Extension)
- (NSString *)verticalText{
    // 利用runtime添加屬性
    return objc_getAssociatedObject(self, @selector(verticalText));
}

- (void)setVerticalText:(NSString *)verticalText{
    objc_setAssociatedObject(self, &verticalText, verticalText, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    NSMutableString *str = [[NSMutableString alloc] initWithString:verticalText];
    NSInteger count = str.length;
    for (int i = 1; i < count; i ++) {
        [str insertString:@"\n" atIndex:i*2-1];
    }
    self.text = str;
    self.numberOfLines = 0;
}
@end
具體用法如下:
   NSString *string = @"北冥有魚,其名為鯤。";
    UILabel *label = [[UILabel alloc] initWithFrame:(CGRectMake(self.view.bounds.size.width * 0.5, 100, 300, 600))];
    label.textColor = [UIColor redColor];
    label.verticalText = string;
    [label sizeToFit];//頂部顯示
    [self.view addSubview:label];
方法二(為NSSring添加分類):
#import <Foundation/Foundation.h>

@interface NSString (Extension)

- (NSString *)VerticalString;

@end
#import "NSString+Extension.h"

@implementation NSString (Extension)
- (NSString *)VerticalString{
    NSMutableString * str = [[NSMutableString alloc] initWithString:self];
    NSInteger count = str.length;
    for (int i = 1; i < count; i ++) {
        [str insertString:@"\n" atIndex:i*2 - 1];
    }
    return str;
}

@end
具體用法如下:
NSString *verText = [@"北冥有魚,其名為鯤。" VerticalString];
    UILabel *label = [[UILabel alloc] initWithFrame:(CGRectMake(self.view.bounds.size.width * 0.5, 100, 300, 600))];
    label.text = verText;
    label.numberOfLines = 0;
    label.textColor = [UIColor redColor];
    [label sizeToFit];//頂部顯示
    [self.view addSubview:label];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,229評(píng)論 4 61
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,210評(píng)論 30 471
  • 周國(guó)平說(shuō):對(duì)親近的人挑剔是本能,但克服本能,做到對(duì)親近的人不挑剔,則是種教養(yǎng)。最好的教養(yǎng),就是不對(duì)親近的人發(fā)火,給...
    虛懷若谷8閱讀 439評(píng)論 1 1
  • 大家現(xiàn)在好,我是耐心,今天周六,加班,繼續(xù)996中,有個(gè)同事很坑,在我們最忙的時(shí)候突然請(qǐng)假,之前排好的任務(wù)沒做,...
    心羽暖姐姐閱讀 85評(píng)論 0 0
  • 文:尹兆奎 1 朋友小王問我,我每天按點(diǎn)上班,按點(diǎn)下班,工作時(shí)間也是兢兢業(yè)業(yè),為什么好事就輪不到我的身上呢?一塊入...
    阿尹說(shuō)說(shuō)閱讀 486評(píng)論 0 1