Xib设置label自动换行和Label的顶部对齐

真的是不想说自己了,一个Xib纠结了一天,简直了,整整被虐了一上午啊......

不知道这是Xcode8的问题呢....还是我的Xib约束什么的问题.....

只想说的是,以前也是这么设置的,明明可以的呀....

反正就是淡淡的忧桑......呜呜呜.....可喜的是,问题终于解决啦.😜

 

实现的效果就是下面啦!!!!  被虐的就是"资产类别"关键字需要换行显示滴......

 

 

一.Xib设置Label就是不能换行,约束检查了好几遍,根本木有错误.....

最后发现问题: 当我们用Xib画的Cell的时候,要先给定下默认值,不然他就是不能换行<表示这个问题是为什么,总之..我是被这个虐了一上午>

 

二.当设置了约束,换行也显示了的时候,发现多行正常显示,单行就不和"资产名称"关键字顶部对齐了,一直以为是顶部约束问题,试了好几次不能解决问题......

给Label设置颜色,发现问题,Label正常显示,是Label的文字不能实现顶部对齐,导致文字一换行,Label的对齐问题出现.

解决方法: 重写UILabeldrawInRect方法

//
//  TopLeftLabel.m
//  zichan
//
//  Created by 思 彭 on 16/9/22.
//  Copyright © 2016年 Mike. All rights reserved.
//

#import "TopLeftLabel.h"

@implementation TopLeftLabel

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code
}
*/

- (id)initWithFrame:(CGRect)frame {
    return [super initWithFrame:frame];
}
- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines {
    CGRect textRect = [super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines];
    textRect.origin.y = bounds.origin.y;
    return textRect;
}
-(void)drawTextInRect:(CGRect)requestedRect {
    CGRect actualRect = [self textRectForBounds:requestedRect limitedToNumberOfLines:self.numberOfLines];
    [super drawTextInRect:actualRect];
}


@end

问题解决了,心情好的不要不要的.....😝...还是要填坑,自己才能成长呀!!!

加油加油💪...Fighting!!!!

posted on 2016-09-22 14:43  玉思盈蝶  阅读(2374)  评论(0编辑  收藏  举报

导航