首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >斯威夫特:字符串-计算第一个字符的高度位置?

斯威夫特:字符串-计算第一个字符的高度位置?
EN

Stack Overflow用户
提问于 2019-03-24 20:23:47
回答 1查看 33关注 0票数 0

我希望缩短长字符串结尾为“查看更多.”

如果字符串没有新行,一切都进行得很顺利。

“猫吃了蛋糕,就出去了,没有任何问题。第二天发生了一件很糟糕的事。主人把猫赶了出去,小动物没有机会回去。”

变成了

“猫吃了蛋糕就出门了,没有任何问题。然后看到了更多的.

但除此之外,,我想限制身高以及。这样,字符串的最大高度可以是200 So,如下所示:

2个新品系1个新项目 3新行0新行

应该变成

2个新品系1个新项目 看到更多.

我如何确定,在哪一个字符之后,我应该把“看到更多.”文本?

代码:

代码语言:javascript
复制
func shorten(maxWidth : CGFloat) -> NSMutableAttributedString {


        let font = UIFont.preferredFont(forTextStyle: UIFont.TextStyle.body)
        // If height is more than 200pt
        if self.height(withConstrainedWidth: maxWidth, font: font) > 200 {
            // Here.. how?
           return finalString
        }

        // If char is more than 400
        if self.count > 400 {
            // BLA BLA CUT TEXT
            return finalString
        }

        let finalString = NSMutableAttributedString(string: self, attributes: [NSAttributedString.Key.font : font])

        return finalString
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-24 20:48:44

我强烈建议您不要将see more...作为普通字符串放在文本中。

更好的方法是在标签之后立即使用UIButton处理see more...文本。

在这种情况下,您可以轻松地操作它的位置、形式、UI等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55328215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档