如何为UILabel制作动态TextReplacementType?

时间:2018-06-21 05:41:15

标签: ios swift uilabel dynamic-text

我正在使用ExpandableLabel库获取更多信息UILabel

它正在使用textReplacementType附加阅读更多文本。

func preparedSources() -> [(text: String, textReplacementType: ExpandableLabel.TextReplacementType, numberOfLines: Int, textAlignment: NSTextAlignment)] {
    return [(loremIpsumText(), .word, 3, .left),
            (textWithNewLinesInCollapsedLine(), .word, 2, .center),
            (textWithLongWordInCollapsedLine(), .character, 1, .right),
            (textWithVeryLongWords(), .character, 1, .left),
            (loremIpsumText(), .word, 4, .center),
            (loremIpsumText(), .character, 3, .right),
            (loremIpsumText(), .word, 2, .left),
            (loremIpsumText(), .character, 5, .center),
            (loremIpsumText(), .word, 3, .right),
            (loremIpsumText(), .character, 1, .left),
            (textWithShortWordsPerLine(), .character, 3, .center),
            (textEmojis(), .character, 3, .left)]
}


func loremIpsumText() -> String {
    return "On third line our text need be collapsed because we have ordinary text, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."
}

func textWithNewLinesInCollapsedLine() -> String {
    return "When u had new line specialChars \n More not appeared eirmod\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n tempor invidunt ut\n\n\n\n labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."
}

func textWithLongWordInCollapsedLine() -> String {
    return "When u had long word which not entered in one line More not appeared FooBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaR tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."
}

func textWithVeryLongWords() -> String {
    return "FooBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaR FooBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaR FooBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaR FooBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaR Will show first line and will increase touch area for more voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."
}

func textWithShortWordsPerLine() -> String {
    return "A\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN"
}

func textEmojis() -> String {
    return "☺️☹️‍❤️‍‍❤️‍‍‍‍‍‍‍‍‍❤️‍‍❤️‍‍☹️"
}

我正在获取动态文本,并且希望使textReplacementType (.word ,.character)具有动态性。

我该如何实现? 谢谢

0 个答案:

没有答案