iOS的UILabel设置居上对齐,居中对齐,居下对齐
2013-03-05 09:47
507 查看
在iOS中默认的UILabel中的文字在竖直方向上只能居中对齐,博主参考国外网站,从UILabel继承了一个新类,实现了居上对齐,居中对齐,居下对齐。具体如下:
在使用时:
// // myUILabel.h // // // Created by yexiaozi_007 on 3/4/13. // Copyright (c) 2013 yexiaozi_007. All rights reserved. // #import <UIKit/UIKit.h> typedef enum { VerticalAlignmentTop = 0, // default VerticalAlignmentMiddle, VerticalAlignmentBottom, } VerticalAlignment; @interface myUILabel : UILabel { @private VerticalAlignment _verticalAlignment; } @property (nonatomic) VerticalAlignment verticalAlignment; @end
// // myUILabel.m // // // Created by yexiaozi_007 on 3/4/13. // Copyright (c) 2013 yexiaozi_007. All rights reserved. // #import "myUILabel.h" @implementation myUILabel @synthesize verticalAlignment = verticalAlignment_; - (id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { 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 VerticalAlignmentBottom: textRect.origin.y = bounds.origin.y + bounds.size.height - textRect.size.height; break; case VerticalAlignmentMiddle: // Fall through. default: textRect.origin.y = bounds.origin.y + (bounds.size.height - textRect.size.height) / 2.0; } return textRect; } -(void)drawTextInRect:(CGRect)requestedRect { CGRect actualRect = [self textRectForBounds:requestedRect limitedToNumberOfLines:self.numberOfLines]; [super drawTextInRect:actualRect]; } @end
在使用时:
lbl_mylabel = [[myUILabel alloc] initWithFrame:CGRectMake(20, 50, 150, 600)]; UIColor *color = [UIColor colorWithPatternImage:[UIImage imageNamed:@"halfTransparent.png"]];//使用半透明图片作为label的背景色 lbl_mylabel.backgroundColor = color; lbl_mylabel.textAlignment = UITextAlignmentLeft; lbl_mylabel.textColor = UIColor.whiteColor; lbl_mylabel.lineBreakMode = UILineBreakModeWordWrap; lbl_mylabel.numberOfLines = 0; [lbl_mylabel setVerticalAlignment:VerticalAlignmentTop]; [self addSubview:lbl_mylabel];
相关文章推荐
- iOS的UILabel设置居上对齐,居中对齐,居下对齐
- iOS的UILabel设置居上对齐,居中对齐,居下对齐
- iOS UILabel设置居上对齐,居中对齐,居下对齐
- ios UILabel设置居上对齐,居中对齐,居下对齐
- iOS UILabel设置居上对齐,居中对齐,居下对齐
- iOS的UILabel设置居上对齐,居中对齐,居下对齐
- iOS的UILabel设置居上对齐,居中对齐,居下对齐
- iOS中UILabel设置居上对齐、居中对齐、居下对齐及文字置顶显示
- iOS的UILabel设置居上对齐,居中对齐,居下对齐
- iOS的UILabel设置居上对齐,居中对齐,居下对齐
- iOS的UILabel设置居上对齐,居中对齐,居下对齐
- iOS的UILabel设置居上对齐,居中对齐,居下对齐
- UILable属性详解,设置居上对齐,居中对齐,居下对齐,获取斜体字,字体、大小、单位、颜色
- 自定义UILabel设置垂直方向的居上,居中,居下
- iOS - UILabel设置行间距及文字居中
- iOS经典讲解之UILabel居上居下显示
- iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片上下垂直居中对齐
- UILABEL 增加居上对齐 居下对齐方法
- iOS小技巧20-iOS UILabel 文字设置垂直居中、垂直靠上、垂直靠下,设置edgeInsets
- UILabel居上对齐居下对齐类别扩展