swift 自定义一个可设置 text 的垂直位置的 Label
2017-02-28 11:20
639 查看
常用于要求 label 文字上部与图片上部对齐的场景
import UIKit enum VerticalAlignment { case VerticalAlignmentTop//default case VerticalAlignmentMiddle case VerticalAlignmentBottom } class VerticalLabel: UILabel { var verticalAlignment: VerticalAlignment = .VerticalAlignmentTop { didSet { self.setNeedsDisplay() } } override init(frame: CGRect) { super.init(frame: frame) self.verticalAlignment = VerticalAlignment.VerticalAlignmentTop } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)! } override func textRect(forBounds bounds: CGRect, limitedToNumberOfLines numberOfLines: Int) -> CGRect { var superRect:CGRect = super.textRect(forBounds: bounds, limitedToNumberOfLines: numberOfLines) switch self.verticalAlignment { case VerticalAlignment.VerticalAlignmentTop: superRect.origin.y = bounds.origin.y case VerticalAlignment.VerticalAlignmentBottom: superRect.origin.y = bounds.origin.y + bounds.size.height - superRect.size.height case VerticalAlignment.VerticalAlignmentMiddle: superRect.origin.y = bounds.origin.y + (bounds.size.height - superRect.size.height) / 2 } return superRect } override func drawText(in rect: CGRect) { let rect:CGRect = self.textRect(forBounds: rect, limitedToNumberOfLines: self.numberOfLines) super.drawText(in: rect) } }
相关文章推荐
- as3.0 封装一个可垂直居中及左右居中的label,并可以设置其字体样式
- 如何设置在一个Label上显示不同颜色的text
- 自定义键盘中的删除键TextField上光标位置的获取以及设置光标的位子
- Ios开发Swift自定义UIbutton增加一个能设置高亮状态下背景颜色的方法
- 一个textbrowser设置垂直滚动条样式表的bug
- Flex中通过textAlign样式在一个按钮(Button)控件中设置标签(label)对齐方式的例子
- 如何设置光标距离左边的位置,为我们的textfield添加一个Leftview
- iOS - (TableView中利用系统的 cell 设置 cell.textlabel 位置和大小)
- 设置一个TextView可以垂直滚动
- 如何设置一个textview的文字显示为垂直居中,水平居左呢
- (转)css 相对定位 绝对定位 浮动 CSS 相对定位 相对定位是一个非常容易掌握的概念。如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”
- flash 游戏设计笔记:TextField确定一个坐标位置,坐标位置不动,文本是向上增长。
- 如何用JavaScript获取和设置textfield中光标位置(转)
- 设置自定义的Edittext的光标是否显示和被选中文字的背景色
- activity中edittext如何在光标位置插入一个字符串
- Flex中通过设置textAlign和labelStyleName样式设置FormItem容器中标签文本对齐方式的例子
- 在TableViewCell里面放一个自定义Label
- Flex中通过设置labelPlacement属性设置RadioButton控件文本标签排列位置的例子
- Flex中如何通过leading样式在一个text控件中设置文本铅框(text leading)的例子
- 自定义一个jquery插件[鼠标悬浮时候 出现说明label]