【问题标题】:Flip characters separately in string在字符串中分别翻转字符
【发布时间】:2014-06-04 00:40:34
【问题描述】:

我的IOS应用有个特殊要求,我想翻转一个字符串中的每一个字符,下图就是我想要的输入和最终结果。

目前我已经尝试过使用 UIFont,我使用 setTransform 方法,但这适用于翻转整个字符串的上下文。然后我尝试使用 NSAttributedString 因为它可以对文本中的给定范围应用特殊效果。我浏览了常量部分下page 中的所有属性,但似乎没有这样的属性。

是否可以为字符串中的每个字符创建上下文?如果是这样,我该如何管理字符之间的空格?

【问题讨论】:

    标签: ios transform nsattributedstring core-text


    【解决方案1】:

    你可以反转字符串然后翻转它。

    ABCD -> DCBA -> 你想要的翻转图像。

    只需像以前一样使用转换,但先反转字符串。

    【讨论】:

    • 谁投了这个票?这并不能真正解决问题,因为 zdd 只想翻转字符串的一部分。例如,在他的图像示例中,A 没有翻转,但 BCD 被翻转。你可以transform镜像一个字符串,你不必先反转它。
    • @Michael A 没有翻转的唯一原因是因为它是对称的。哈哈!我想你弄错了翻转的方向。它不是从上到下,而是从左到右。请删除反对票。谢谢。
    • 这几乎解决了我的问题,但是如果有多行字符串,则反转和翻转后顺序不正确。我的意思是第一个字母将在最后一行。这不是我想要的。
    【解决方案2】:

    好吧,有点难……

    首先,将字符串分成应该颠倒的部分和应该正常的部分。例如。您可能想拆分“Hello world!”而“世界”应该是颠倒的。所以你有“你好”、“世界”、“!”。您始终可以使第一个字符串正常:例如如果您想让“Hello”倒置而字符串的其余部分正常,则列表将是“”、“Hello”、“world!”。

    为每个字符串创建一个UILabel。给他们每个人打电话-sizeToFit。将它们彼此相邻放置。将每个应该倒置的 UILabel 的 transform 属性(即每秒 UILabel)设置为适当的值

    您可以将所有这样创建的 UILabel 包装到一个容器视图中,甚至可以创建一个隐藏所有实现细节的 UIView 子类(推荐)。

    完成。

    【讨论】:

    • 稍后会尝试您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 2013-09-20
    • 1970-01-01
    • 2022-11-08
    • 2021-08-14
    相关资源
    最近更新 更多