第一次在这里发帖。我正在研究如何从adobe重新创建Spark Post应用程序中的这个超级光滑的文本容器。
IMAGE: https://i.stack.imgur.com/6auPa.png
VIDEO: https://www.youtube.com/watch?v=SfvkreOo3V0&feature=youtu.be
我已经研究过如何通过迭代不同尺寸来计算容器的最大字体大小的其他答案,直到达到更好的适合度。
但如果仔细观察,情况会有所不同:
我很想听到一些专家的意见。
答案 0 :(得分:0)
我认为您可以按照以下步骤解决问题
根据矩形的宽度和高度查找每个Word的字体大小 人物数量。
根据计算身高为每个单词创建标签。
如果每次矩形宽度高度改变时都这样做,我认为它看起来像动画。
答案 1 :(得分:0)
嘿谢谢你的帮助。
如上所述,解决方案的重要部分是将文本分段并将其放入框中,以便您可以使用:
- (CGSize)sizeForText:(的NSString *)文本 withHyperLabel:(TTHyperLabel *)超标记{
CGSize maxSize=CGSizeMake(MAXFLOAT, MAXFLOAT); NSDictionary *attributes=@{ NSFontAttributeName: [UIFont fontWithName:hyperLabel.fontName size:100], }; CGRect textRect = [text boundingRectWithSize:maxSize options:0 attributes:attributes context:nil]; return textRect.size; }
棘手的部分是"排序" algorihtm。我最终写了自己的"流体文本容器"算法,它似乎非常接近spark的版本 。 https://www.youtube.com/watch?v=yM13PSLW6Fg&feature=youtu.be
要点是将内盒视为注入容器的液体。如果有任何兴趣,我可以稍后再开源。让我知道!
谢谢!