Rod*_*kes 11 uilabel ios swift
在我的应用程序中,我正在使用ActiveLabelfram Github.
在这种情况下,我的标签不会显示UILabel中间的文本.如果我使用普通的UILabel它可以正常工作,但是当它设置为ActiveLabel时,它会像这样.

(图像在运行时拍摄)
我认为这是以某种方式使用对齐的代码:
/// add line break mode
private func addLineBreak(attrString: NSAttributedString) -> NSMutableAttributedString {
let mutAttrString = NSMutableAttributedString(attributedString: attrString)
var range = NSRange(location: 0, length: 0)
var attributes = mutAttrString.attributesAtIndex(0, effectiveRange: &range)
let paragraphStyle = attributes[NSParagraphStyleAttributeName] as? NSMutableParagraphStyle ?? NSMutableParagraphStyle()
paragraphStyle.lineBreakMode = NSLineBreakMode.ByWordWrapping
if let lineSpacing = lineSpacing {
paragraphStyle.lineSpacing = CGFloat(lineSpacing)
}
attributes[NSParagraphStyleAttributeName] = paragraphStyle
mutAttrString.setAttributes(attributes, range: range)
return mutAttrString
}
Run Code Online (Sandbox Code Playgroud)
(图片取自故事板)
将方法ActiveLabel.swift替换为drawTextInRect
public override func drawTextInRect(rect: CGRect) {
let range = NSRange(location: 0, length: textStorage.length)
textContainer.size = rect.size
let usedRect = layoutManager.usedRectForTextContainer(textContainer)
let glyphOriginY = (rect.height > usedRect.height) ? rect.origin.y + (rect.height - usedRect.height) / 2 : rect.origin.y
let glyphOrigin = CGPointMake(rect.origin.x, glyphOriginY)
layoutManager.drawBackgroundForGlyphRange(range, atPoint: glyphOrigin)
layoutManager.drawGlyphsForGlyphRange(range, atPoint: glyphOrigin)
}
Run Code Online (Sandbox Code Playgroud)
我还在https://github.com/rishi420/ActiveLabel.swift下分叉了该存储库
如果您下载了存储库,请记住设置verticalTextAlignmentCenter为true
| 归档时间: |
|
| 查看次数: |
2643 次 |
| 最近记录: |