UILabel 竖行显示


- (UIView *)viewLabelWithTitle:(NSString *)title

{

    CGFloat sizeFont = 10.5;

    

    CGFloat wordHeight = sizeFont + 2;                   //字体的高度

    

    CGFloat contentViewHeight = 90;                       //view的高度


    CGFloat contentViewWdith = 60;                        //view宽度


    CGFloat labelHeight = contentViewHeight - 12;           //label的高度

    

    NSInteger rowNum = title.length * wordHeight /labelHeight + 1;     //多少列

    

    CGFloat spaceX = (contentViewWdith - (wordHeight+3)*rowNum)/2;

    

    NSInteger titleNum = labelHeight/wordHeight;           //每列多少个文字

    

    UIView *labelView = [[UIView alloc]initWithFrame:CGRectMake(spaceX, 0, (wordHeight+3)*rowNum, contentViewHeight)];

    

    for ( int i = 0 ; i

        

        UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(wordHeight*i+i*3, 6, wordHeight, labelHeight)];

        

        label.font = [UIFont systemFontOfSize:sizeFont];

        

        label.textColor = [UIColor whiteColor];

        

        label.numberOfLines = 0;

    

        NSInteger len = 0;

        

        if (i) {

            

            if (title.length - i*titleNum < titleNum) {

                

                len = title.length - i*titleNum;

                

            }

        }else {

            

            if (titleNum > title.length) {

                

                len = title.length;

            }else {

            

                len = titleNum;

            }

        }

        

        NSRange range = NSMakeRange(i*titleNum,len);

        

        label.text = [title substringWithRange:range];

        

        [labelView addSubview:label];

    }

    

    return labelView;

}

你可能感兴趣的:(UILabel 竖行显示)