iOS的UILabel设置居上对齐,居中对齐,居下对齐

在iOS中默认的UILabel中的文字在竖直方向上只能居中对齐,我从UILabel继承了一个新类,实现了居上对齐,居中对齐,居下对齐。具体如下:

1.新建一个类VerticalAlignmentLabel.h继承自UILabel

2.

//

//  VerticalAlignmentLabel.h

//  inface

//

//  Created by huangzengsong on 15/5/10.

//  Copyright (c) 2015年 huangzs. All rights reserved.

//

#import <UIKit/UIKit.h>

typedef enum

{

VerticalAlignmentTop = 0, // default

VerticalAlignmentMiddle,

VerticalAlignmentBottom,

} VerticalAlignment;

@interface VerticalAlignmentLabel : UILabel

{

@private

VerticalAlignment _verticalAlignment;

}

@property (nonatomic) VerticalAlignment verticalAlignment;

@end

3.

//

//  VerticalAlignmentLabel.m

//  inface

//

//  Created by huangzengsong on 15/5/10.

//  Copyright (c) 2015年 huangzs. All rights reserved.

//

#import "VerticalAlignmentLabel.h"

@implementation VerticalAlignmentLabel

@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];

}

/*

// Only override drawRect: if you perform custom drawing.

// An empty implementation adversely affects performance during animation.

- (void)drawRect:(CGRect)rect {

// Drawing code

}

*/

@end

4.调用时导入头文件

#import "VerticalAlignmentLabel.h"

5.

[self.DetailLabel setVerticalAlignment:VerticalAlignmentTop];

时间: 2025-01-14 21:46:23

iOS的UILabel设置居上对齐,居中对齐,居下对齐的相关文章

自定义UILabel设置垂直方向的居上,居中,居下

IOS系统框架中UILabel的属性textAlignment只调整水平方向的居中,居左,居右,而没有垂直方向的调整.所以要自定义一个继承自UILabel的类,在类的实现文件中进行文字的重绘,达到垂直方向的位置调整. 新建一个类文件,继承自UILabel,头文件如下: #import <UIKit/UIKit.h> typedef NS_ENUM(NSInteger,VerticalAlignment){ VerticalAlignmentTop, VerticalAlignmentMiddl

猫猫学iOS之UILabel设置圆角不成功所做调控更改

原创文章,欢迎转载.转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 如图问题 如图是我要做的效果 然而当我写好代码后,设置号label的layer圆角后是这样的 崩溃.. 解决 百度后知道解决方法,原来少了一行代码 cell.textLabel.text = @"检查更新"; UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(NYScreenW - 145, 9, 115,

iOS:UILabel设置不同字体颜色

NSString *str = @"0123456789";//label内容 NSMutableAttributedString *str1 = [[NSMutableAttributedString alloc] initWithString:str]; //根据下标索引设置字体颜色 [str addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0,5)];

iOS的UILabel设置多行显示

1 label.lineBreakMode = NSLineBreakByWordWrapping; 2 label.numberOfLines = 0; 原文地址:https://www.cnblogs.com/luoluosha/p/11686934.html

iOS UILabel设置居上对齐,居中对齐,居下对齐

在iOS中默认的UILabel中的文字在竖直方向上仅仅能居中对齐,博主參考国外站点.从UILabel继承了一个新类,实现了居上对齐,居中对齐,居下对齐.详细例如以下: [cpp] view plaincopy // //  myUILabel.h // // //  Created by yexiaozi_007 on 3/4/13. //  Copyright (c) 2013 yexiaozi_007. All rights reserved. // #import <UIKit/UIKit

Swift环境下实现UILabel居上 居中 居下对齐

首先在Xcode中新建.h文件,将下面代码复制进去 // // 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,

Swift环境下一行代码实现UILabel居上 居中 居下对齐

首先在Xcode中新建.h文件,将以下代码复制进去 // // 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,

UIlabel居上对齐遇到的问题和解决方法以及其他相关资料

UILabel的text的对其方式有四种类型 NSTextAlignmentLeft; NSTextAlignmentCenter; NSTextAlignmentRight; 基本够用 但是今天遇到个问题 就是当我label很高字体很小的时候 默认的label文字永远是默认在中间  上图 [myLabel sizeToFit];首先试了这个方法 但是发现改变大小适应这个属性 会让文字在左上角并且label的height也随之缩小 添加numberToLine=0可以在换行的时候改变高度 其实这

iOS设置button上的文字和图片上下垂直/水平居中对齐

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//button的类型  button.frame = CGRectMake(100, 100,90, 90);//button的frame  button.backgroundColor = [UIColor cyanColor];//button的背