一般来说,在ios里面label中的文字垂直方向上是默认居中的,如果想要设置居上或者居下,在xib文件里面不能设置,只能自定义一个UI控件。
label文字的水平位置,可以在xib文件中直接设置。

import UIKit/// カスタムUIコントロール
class TextPositionLabel: UILabel {var verticalAlignment : VerticalAlignment?override init(frame: CGRect) {super.init(frame: frame)self.verticalAlignment = VerticalAlignment.middle}override func textRect(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect {var textRect: CGRect = super.textRect(forBounds: bounds, limitedToNumberOfLines: numberOfLines)switch self.verticalAlignment {case .top?:textRect.origin.y = bounds.origin.ycase .bottom?:textRect.origin.y = bounds.origin.y + bounds.size.height - textRect.size.heightcase .middle?:textRect.origin.y = bounds.origin.y + (bounds.size.height - textRect.size.height) / 2.0default:// デフォルトが居中ですtextRect.origin.y = bounds.origin.y + (bounds.size.height - textRect.size.height) / 2.0}return textRect}override func draw(_ rect: CGRect) {let rect : CGRect = self.textRect(forBounds: rect, limitedToNumberOfLines: self.numberOfLines)super.drawText(in: rect)}required init?(coder aDecoder: NSCoder) {fatalError("init(coder:) has not been implemented")}}/// labelの文字列の位置タイプ
public enum VerticalAlignment {// 居上case top// 居中case middle// 居下case bottom
}

自定义UI控件:继承UIlabel,使label中的文字居上,居中,居下相关推荐

  1. Flutter 自定义UI控件并设置交互能力

    1.自定义UI控件 首先UI控件按照是否能够与用户交互分为交互型控件和非交互型控件. 下面就是创建了一个交互型控件,只是关于界面是空的,如果我们继承StatelessWidget就是创建了一个非交互型 ...

  2. qt designer使用自定义ui控件

    文章目录 qt designer使用自定义ui控件 使用须知 插件应该存放的位置 Qt creator内置的designer 独立的designer 构建一个可使用的插件 Qt creator内置的d ...

  3. 8月2日Cocos 斗鱼直播:2小时现撸自定义UI控件

    嘟!嘟!嘟!Cocos斗鱼直播秀,将在下周二晚八点准时开车!本期我们要派出的当家主播,是位混迹江湖多年的老司机--子龙山人. 各位宝宝们先记得收好下面这张门票,下周二别忘记上车哦! 8月2日(周二)2 ...

  4. android高德地图上加自定义菜单,自定义UI控件-UI界面定制-开发指南-Android 导航SDK | 高德地图API...

    关于自定义 UI 布局,您还可以参考官方Demo--完全自定义UI导航. 单元素自定义 可以通过AMapNaviViewOptions中如下接口进行单UI元素显示隐藏,只列出部分接口,更多功能请参考A ...

  5. Qt 实现自定义Ui控件例子,以自定义的Slider为例(QWidget)

    说明 Qt可以比较方便地实现自定义控件在Qt Creator中使用.网上也有很多大神的控件可以使用,但是如果想要自己简单定制也可以按照这个流程. 本文的要点: [1]如何实现一个自定义控件? 本文使用 ...

  6. java里怎么使字居中显示,JAVA怎样使Label中的文字居中对齐!

    优质回答 回答者:Catsayer丷 请看API Label中静态变量 static int CENTER 指示标签文本应居中. static int LEFT 指示标签文本应左对齐. static ...

  7. html中label文本垂直居中,如何在VB中实现label中的文字垂直方向居中?

    在Vb中如text和label控件是没有垂直居中功能的. 但是可以变通就是给文字加空行. 下面的是从百度贴吧上面引用来的: 但是他并没有说明要将text的mutiline属性设置为true,否则是不行 ...

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

    首先在Xcode中新建.h文件,将以下代码复制进去 // // myUILabel.h // // // Created by yexiaozi_007 on 3/4/13. // Copyright ...

  9. Android 自定义titlebar控件(自定义UI控件)

    1.创建自定义的属性: 2.在自定义的布局中获取属性: 3.在mainActivity中使用 自定义控件,并使用自定义属性赋值. 1.创建自定义的属性创建 values/attr.xml 文件: &l ...

最新文章

  1. OCP读书笔记(9) - 诊断数据库
  2. java 操作序列_JAVA序列化操作详解
  3. Python中的property类和@property装饰器
  4. vs不想运行某个项目_Creo二次开发--项目搭建
  5. 【剑指offer】62、圆圈中最后剩下的数字
  6. Windows窗体和常用控件的事件处理函数
  7. 2018 推荐系统总结
  8. 即将举行的jQuery的培训活动
  9. java取0到999整数_Java中输入一个0到999的整数 怎么弄? 谢谢了、
  10. 揭秘中国球员十大豪宅
  11. 破解水卡教程 超详细
  12. 苹果cms重名视频怎么合并
  13. Surface Pro 3 的 USB 和蓝牙设备无法使用的处理方法
  14. iOS及Mac开源项目和学习资料
  15. C#中Math函数简介
  16. 美国计算机专业大学排名前30,【最新】2015年美国大学计算机专业排名
  17. Ubuntu 查看磁盘空间大小命令
  18. 服务器项目报备什么意思,报备项目是什么意思
  19. 图书借阅(C++实现)
  20. html背景视频模糊效果,怎么给竖屏视频添加模糊背景的效果

热门文章

  1. 后缀自动机构造后缀树
  2. python斐波拉契数列/素数数列
  3. jquery之Uncaught Error: Syntax error, unrecognized expression: #
  4. Java程序的国际化和本地化介绍
  5. Jmeter核心知识点之参数化
  6. js复制字符串到粘贴板
  7. 巨头汇集教育硬件,智能作业灯何以突围?
  8. coreldraw x5安装视频教程_CorelDRAW菜单栏不见了如何找回 - CG平面软件问答-CDR经验知识 CorelDraw知道 AI怎么安装 LR问答...
  9. 如何提高笔试做题准确率和解题速度?
  10. pandas 案例分析:美国各州人口数据分析