iOS UILabel设置居上对齐,居中对齐,居下对齐
在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设置居上对齐,居中对齐,居下对齐相关推荐
- 自定义UI控件:继承UIlabel,使label中的文字居上,居中,居下
一般来说,在ios里面label中的文字垂直方向上是默认居中的,如果想要设置居上或者居下,在xib文件里面不能设置,只能自定义一个UI控件. label文字的水平位置,可以在xib文件中直接设置. i ...
- iOS UILabel设置行间距和字间距并计算高度
转载自: http://blog.csdn.net/luco2008/article/details/50977718 #define UILABEL_LINE_SPACE 6 #define HE ...
- iOS UILabel 设置 行间距 和 字间距 并计算高度
#define UILABEL_LINE_SPACE 6 #define HEIGHT [ [ UIScreen mainScreen ] bounds ].size.height //给UILabe ...
- flex vue 垂直居中居上_flex 垂直居中、两列对齐、自适应宽
flex 垂直居中 #parent { display:flex; width:300px; height:300px; outline:solid 1px; justify-content:cent ...
- 配置字段(居左,居中,居右,高度自适应)
1.....var note = items.NOTE();2.... // 创建 主体时,需要的key_thisKey.push({ key: childName, w: childWidth, c ...
- 【微信小程序】实现新闻列表(文字垂直居上、垂直居下)
新闻列表效果 相关原理 CSS 的 absolute 定位 值得注意的是,绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>: 代码 ...
- UILable属性详解,设置居上对齐,居中对齐,居下对齐,获取斜体字,字体、大小、单位、颜色
·常用属性和方法有: 1.创建 CGRect rect = CGRectMake(100, 200, 50, 50); UILabel *label = [[UILabel alloc] initWi ...
- Swift环境下实现UILabel居上 居中 居下对齐
首先在Xcode中新建.h文件,将以下代码复制进去 // // myUILabel.h // // // Created by yexiaozi_007 on 3/4/13. // Copyright ...
- PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
通过 alignment 设置,展开后可以设置水平方向或垂直方向的对齐方式. PyQt5 设置文本对齐方法: self.label.setAlignment(QtCore.Qt.AlignRight| ...
最新文章
- 李战:悟透JavaScript 【转】
- 关于若干数据库数据插入性能的对比
- SQL注入——基于报错的注入(五)
- tomcat 启动时内存溢出
- 使用Spring发送带附件的电子邮件(站内和站外传送)
- 百度分布式配置管理平台-Disconf
- lg gw880 qq2011 android beta4版,LG GW880评测:CMMB天线、细节设计
- 最新容器项目 Kata 曝光
- Insufficient space for shared memory file 解决办法
- 用cglib生成的代理类取不到注解的问题
- Redis 入门指南三:数据类型
- 一步解决Bat脚本中包含中文时运行乱码问题
- linux三星电脑开机怎么进入页面,三星Samsung笔记本电脑开机进入BIOS的方法与BIOS设置全功能菜单(F2)...
- 渗透测试——痕迹清除
- 【青松资讯】Anonymous匿名者黑客组织公布攻击新目标:100家中国政府网站
- 自监督学习系列(一):基于 Pretext Task
- 解决visio和office365冲突,无法安装visio问题
- Android多维商品属性SKU选择
- 刘强东终于向自己的兄弟下手了!
- make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1
热门文章
- [羊城杯 2020]easyre 1题解
- 【java算法题大全】设计一个抽奖程序,要求已经抽过的不能再抽,可以自定义参加抽奖人数以及奖品
- 碳纳米纤维膜;多孔碳纳米纤维柔性膜
- 在 CSS 中设置 cellpadding 和 cellspacing?
- X 态及基于 VCS 的 X-Propagation 检测
- PlayBlock何晓星:区块链不是换了个地方玩原来的游戏,而是带来新的可能性
- nginx - 负载均衡配置-负载均衡策略
- JAVA SpringBoot连接Access数据详细教程(带密码)
- 在 Ubuntu 18.04 构建 Intelligent Input Bus (IBus)
- 分数的大小比较优秀教案_《分数的大小比较》教学教案范文