相关疑难解决方法(0)

获取 UILabel 中的每一行文本

我正在尝试将 aUILabel中的每一行添加到数组中,但我使用的代码似乎并不十分准确。

func getLinesArrayOfStringInLabel(label:UILabel) -> [String] {

    guard let text: NSString = label.text as? NSString else { return [] }
    let font:UIFont = label.font
    let rect:CGRect = label.frame

    let myFont: CTFont = CTFontCreateWithName(font.fontName as CFString, font.pointSize, nil)

    let attStr:NSMutableAttributedString = NSMutableAttributedString(string: text as String)
    attStr.addAttribute(NSAttributedStringKey.font, value:myFont, range: NSMakeRange(0, attStr.length))

    let frameSetter:CTFramesetter = CTFramesetterCreateWithAttributedString(attStr as CFAttributedString)

    let path: CGMutablePath = CGMutablePath()
    path.addRect(CGRect(x: 0, y: 0, width: rect.size.width, height: 100000))

    let frame:CTFrame = CTFramesetterCreateFrame(frameSetter, CFRangeMake(0, 0), path, nil)
    let lines …
Run Code Online (Sandbox Code Playgroud)

core-text ios swift

5
推荐指数
1
解决办法
2491
查看次数

UILabel和UITextView换行符不匹配

我有一个UILabel和一个UITextView,我的意图是使它们都显示相同的文本,并且外观相同。我现在对此有一些疑问。我已经在Swift游乐场建立了一个演示:

import UIKit
import PlaygroundSupport

class MyViewController : UIViewController {
    override func loadView() {
        let view = UIView()
        view.backgroundColor = .white

        let label = UILabel()
        label.frame = CGRect(x: 100, y: 100, width: 247, height: 39)
        label.numberOfLines = 0
        label.font = UIFont.systemFont(ofSize: 16)
        label.text = "I’m on my way back to London today"
        label.textColor = .black
        label.backgroundColor = .red
        label.lineBreakMode = .byWordWrapping
        view.addSubview(label)

        let textView = UITextView()
        textView.frame = CGRect(x: 100, y: 200, width: 247, height: 39)
        textView.font = label.font
        textView.text …
Run Code Online (Sandbox Code Playgroud)

uitextview uilabel ios

3
推荐指数
1
解决办法
648
查看次数

标签 统计

ios ×2

core-text ×1

swift ×1

uilabel ×1

uitextview ×1