IOS UILabel垂直顶部,中间,底部对齐
2014-02-26 16:15
309 查看
在IOS中默认的UILabel中的文字是正能是居中对齐的,在应用的时候,我们可能会用到顶部或者底部对齐,下面我们就来实现UILabel的顶部,底部对齐,
首先新建一个类MyLabel继承自UILabel,代码如下
实现代码如下
在调用的时候首先引入MyLabel,调用代码如下:
首先新建一个类MyLabel继承自UILabel,代码如下
#import <UIKit/UIKit.h> typedef enum { VerticalAlignmentTop=0, VerticalAlignmentMiddle,//default VerticalAlignmentBottom, }VerticalAlignment; @interface MyLabel : UILabel { @private VerticalAlignment _verticalAlignment; } @property(nonatomic)VerticalAlignment verticalAlignment; @end
实现代码如下
#import "MyLabel.h" @implementation MyLabel @synthesize verticalAlignment=_verticalAlignment; - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { self.verticalAlignment=VerticalAlignmentMiddle; } return self; } -(void)setVerticalAlignment:(VerticalAlignment)verticalAlignment { _verticalAlignment=verticalAlignment; [self setNeedsDisplay];//重绘一下 } -(CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines { CGRect textRect=[super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines]; switch(self.verticalAlignment) { case VerticalAlignmentTop: textRect.origin.y=bounds.origin.y; break; case VerticalAlignmentMiddle: textRect.origin.y=bounds.origin.y+(bounds.size.height-textRect.size.height)/2.0; break; case VerticalAlignmentBottom: textRect.origin.y=bounds.origin.y+bounds.size.height-textRect.size.height; break; default: textRect.origin.y=bounds.origin.y+(bounds.size.height-textRect.size.height)/2.0; break; } return textRect; } -(void)drawTextInRect:(CGRect)rect { CGRect actualRect=[self textRectForBounds:rect limitedToNumberOfLines:self.numberOfLines];//重新计算位置 [super drawTextInRect:actualRect]; } @end
在调用的时候首先引入MyLabel,调用代码如下:
MyLabel *lbl = [[MyLabel alloc] initWithFrame:CGRectMake(20, 20, 150, 300)]; lbl.textAlignment = UITextAlignmentCenter; lbl.textColor = [UIColor redColor]; lbl.lineBreakMode = UILineBreakModeWordWrap; lbl.numberOfLines = 0; lbl.text=@"My Content"; [lbl setVerticalAlignment:VerticalAlignmentMiddle]; [self.view addSubview:lbl];
相关文章推荐
- IOS UI篇—UILabel的文字顶部对齐
- IOS开发之----让UILabel 垂直方向顶端对齐的代码
- iOS AutoLayout自动布局中级开发教程(7)-底部顶部baseLine基线对齐
- UILabel文本垂直顶部对齐的方法
- iOS AutoLayout自动布局中级开发教程(7)-底部顶部baseLine基线对齐
- iOS开发技巧 - 使UILabel中的文字吸顶(顶部对齐)
- iOS -让UILabel的文字顶部对齐
- iOS开发之----让UILabel 垂直方向顶端对齐的代码
- 让UILabel顶部对齐
- 顶部和底部固定中间自适应的布局
- UILabel的text顶部或底部显示
- iOS UILabel两端对齐的实现(可包括中英文/数字)
- iOS-OC-让tableview滚动到顶部 滚动到底部
- CSS各种对齐代码,左对齐、右对齐、中间对齐、底部对齐、两端对齐等,代码简单
- box-align,box-pack实现元素垂直底部对齐
- iOS小技巧-UITableView禁止上下滑动超出顶部或者底部的内容
- UILabel 垂直方向顶端对齐
- iOS UILabel设置居上对齐,居中对齐,居下对齐
- 让UILabel垂直方向顶端对齐
- UILabel设置顶、左、右、底部对齐