【问题标题】:UILabel with Shadow changes Shadow Offset when Autoshrinking带有阴影的 UILabel 在自动收缩时更改阴影偏移
【发布时间】:2013-05-25 04:30:15
【问题描述】:

我有一个 UILabel,在 1 个垂直像素处有一个白色阴影偏移,它在正常大小下看起来很好:http://cl.ly/PBtC

但是,如果标签内的文本变得足够大,Autoshrink 可以将其缩小,那么阴影偏移量的增长将远远超过一个像素。见这里:http://cl.ly/PC4M

并且偏移量似乎会根据 UILabel 自动收缩的程度而变化:http://cl.ly/PBtn

有人看过吗?我的 UILabel 没有什么好笑的,而且非常可重复。这是我的 IB 设置:http://cl.ly/PCIx

关于修复的任何想法?

【问题讨论】:

    标签: iphone ios cocoa-touch uilabel


    【解决方案1】:

    我也遇到过同样的问题(据说是 IB 错误)。截至目前(Xcode 4.6.2),似乎可以启用Minimum Font ScaleTighten Letter SpacingMinimum Font Size 似乎与Tighten Letter Spacing 配合得很好。

    也可以看看UILabel min font size shadow issue

    【讨论】:

      【解决方案2】:

      我使用您的 IB 设置重现了完全相同的结果。

      对于修复,将文本类型更改为属性文本,一切正常。

      【讨论】:

      • 当我将 UILabel 更改为属性文本而不是纯文本时,我会从 Interface Builder 中丢失我的大小和对齐设置。我正在设置文本: [_stringLabel setAttributedText:[[NSAttributedString alloc] initWithString:value]];它似乎不尊重我的界面构建器设置。
      • 它不尊重您的 IB 值,因为您正在重新初始化 NSAttributedString。设置插座并通过它分配文本,我认为没有理由重新初始化字符串。如果有,则在分配初始化后直接在代码中手动设置对齐方式和大小。希望这能解决您的问题,请告诉我。
      • 当我只使用 [_stringLabel setText:value] 时也会发生同样的事情。不知道为什么它不只使用 IB 值。
      • 这很痛苦,我不应该这样做。如果 IB 设置不起作用,为什么还要设置它们?你能想出失败的其他原因吗?
      • 我唯一能想到的就是你还在某个地方重新初始化。从我所看到的情况来看,IB 仍然存在相当大的缺陷,几乎不是成品。稍后我会尝试通过分配文本来重现发生在你身上的事情,然后告诉你。
      【解决方案3】:

      没有看到你的代码,我最好的猜测是 UILabel 没有正确处理阴影的自动调整大小。 我建议创建一个 UILabel 子类,并通过覆盖layoutSubviews 手动处理阴影。如果您可以确认这是一个 UIKit 错误,请向 Apple 提交报告。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多