UILabel 上下左右对齐
来源:互联网 发布:家用灭蚊 知乎 编辑:程序博客网 时间:2024/05/21 23:09
在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];
0 0
- UILabel 上下左右对齐
- UILabel对齐
- UILabel顶端对齐
- UILabel顶端对齐
- 让UILabel顶部对齐
- 设置UILabel 两端对齐
- UILabel顶端对齐
- UIlabel 中的字体对齐
- UILabel顶端对齐
- UIlabel顶端对齐
- UILabel的顶对齐解决方法
- UILabel文字上对齐方法
- UILabel中的文字顶端对齐
- UILabel 垂直方向顶端对齐
- UILabel textAlignment 居中 左右对齐
- UILabel文本内容顶部对齐
- UILabel 的文字顶部对齐
- 使UILabel垂直考上对齐
- android:为TextView添加样式——下划线,颜色,设置链接样式及前背景色
- iOS QQ登录 傻瓜式集成
- 某些手机(Andreno gpu)上gpu渲染异常的问题。(文章原题:CCRenderTexture 从后台进入前台变黑的处理(android))
- 瞎写。
- HIve实战分析Hadoop的日志
- UILabel 上下左右对齐
- 使用OSGi-JAXRS-Connector实现Restful
- 设计模式——状态模式
- 大型网站架构模式
- NOTE: attach of thread 'Binder_3' failed 的调试和解决
- boost bind 全局函数(非成员函数)
- C#定时器
- RDB(redis db)持久化
- Linux操作系统下IPTables配置方法详解