格式化和弦和歌词的文本Textview或UiLabel Swift

时间:2016-11-30 10:59:54

标签: ios swift uilabel uitextview

有人可以给我一些关于如何在textview或标签中实现,为和弦和歌词格式化文本的提示吗?下面有哪种图片?

enter image description here

1 个答案:

答案 0 :(得分:1)

你和我一样有挑战。每当我在我的歌词中找到[G]或[Em]时,我正在考虑在CATextLayer对象上绘制文字:“[G]我今天读了[Bm]新闻,哦[Em] boy,[Em7] “

func drawLayer(_ chord: String, frame: CGRect) {
    let textLayer = CATextLayer()
    textLayer.frame = frame

    let myAttributes = [
        NSFontAttributeName: UIFont(name: "Helvetica", size: 13.0) , // font
        NSForegroundColorAttributeName: UIColor.cyan                    // text color
    ]
    let myAttributedString = NSAttributedString(string: chord, attributes: myAttributes )

    textLayer.string = myAttributedString
    lyricView.layer.addSublayer(textLayer)
}

困难的部分是确定每个单独和弦的位置,你必须将它的位置精确地指定在你的歌词顶部。 (我仍在寻找获得x& y位置的最佳方法)