- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
是否期望具有自定义 lineSpacing
属性的多行 UILabel 包括该行间距,即使标签的文本适合一行?
这是我的标签:
let label = UILabel()
label.numberOfLines = 4
var paragraph = NSMutableParagraphStyle()
paragraph.lineSpacing = 5
paragraph.lineBreakMode = .ByTruncatingTail
label.attributedText = NSAttributedString(string: "Some short text", attributes: [NSParagraphStyleAttributeName: paragraph])
这是它的布局方式。请注意文本下方的额外间距。
比较:
奇怪的是缺乏一致性。当标签延伸到第二行时,底线不再包含这个额外的间距:
有没有办法在单行文字的情况下去掉这个行距?还是通过某种其他方式来强制保持某种一致性,以便我至少可以考虑到这一点?
更新
基线计算似乎也被打破了。尝试将 View (此处为红色框)与标签的基线对齐时,多行标签会被部分覆盖。
最佳答案
既然您说您使用的是自定义字体,我根据之前的经验做出的最佳猜测是您所看到的问题的根本原因在于自定义字体本身内部的某处。每当客户给我自定义字体时,在 90% 的情况下,实际字体指标都会出现“错误”(由 Apple 的内部字体渲染子系统解释,即使它可能在其他地方正确渲染)。
好消息是这是可以修复的,但它需要用新的指标重建字体,这通常是一个反复试验的过程。您可能还需要检查您拥有的字体许可证是否允许这样的事情(如果它很重要的话)。
也就是说,这些是我在开始一个新项目时针对这个确切场景保留的问题的一些资源:
假设这是一个自定义字体问题:“Custom UIFont baseline shifted”,这里有一个与您的问题类似的问题。这个问题在 UIButton“UIButton custom font vertical alignment”中处理这个问题,但是这两个问题最终都以这个问题“Custom installed font not displayed correctly in UILabel”的答案结束。
我现在有一个自定义字体的个人测试平台应用程序,每当我第一次获得自定义字体时我都会使用它。这使我能够针对每次重建迭代单独测试字体,以确保其完美呈现。确保在各种字体大小甚至其他语言(是的,很多排列)中测试您的更改。在使用自定义字体时,我遇到了泰语和中文的问题,因为它们的上伸部分非常靠近 UILabel 的边界框边缘。我为自己创建的测试平台包括以各种大小的基本 UILabel 呈现的字体和各种大小的各种语言(因为就像我说的,我过去有过糟糕的体验,使用某些语言的自定义字体呈现良好罗马字符)。
如果有人对此有更好的解决方案,我很乐意听到它,因为我几乎每次都遇到自定义字体的问题。这是我的工作流程,用于在我们开始补偿布局期间的字体渲染问题或使用单独的属性字符串调整之前将问题扼杀在萌芽状态。我不是字体专家,我只是一个喜欢像内置字体一样呈现字体的人(尤其是在使用自动布局时)。
关于ios - 具有单行文本的 UILabel 的行间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32291105/
这个问题在这里已经有了答案: Why should there be spaces around '[' and ']' in Bash? (4 个回答) 3年前关闭。 作为初学者,我没有在任何地方找
我有一个程序,我在其中输入 Java 程序来检查输入的字符串是否为回文。我有 2 个问题正在发生,我似乎一辈子都无法解决。 我已经输入了代码,这样它会告诉我它是否是一个回文,当所有小写字母不涉及空格时
table { border: 0; padding: 0; border-collapse: collapse;
我有 10 个单元格,其中第 6 个单元格的宽度必须与其他单元格不同。我试图在流委托(delegate)方法中更改它。但是从第 7 个单元格到第 10 个单元格的间距出了点问题。 func coll
我只是希望将这些新闻发布很好地隔开,以便在每次发布之间留出空隙。我在下面附上了一张图片来解释。我试图增加下面的填充,但这没有用。感谢您的帮助 .headline { position: absolut
如何使用 css 删除表格结构中烦人的单元格间距和/或填充?如果解决方案在 IE7-9、Firefox 和 Chrome 中有效,请加倍支持! 为什么CSS这么难!真让人抓狂! 最佳答案 通常,在该表
我在我正在使用的网站上设置了按钮。我想在按钮外创建一个 2px 的边框,有一点间距。请参见设计图像。 我可以创建边框,但不能创建边框之外的间距。这是当前的开发站点。按钮是第一个图形。 到目前为止我已经
我正在网站上生成元素符号列表(通过使用 jquery 自动完成功能)和我在网站中使用响应式网页设计。 我想在每个列表项后留一个空格。为此,我添加了以下 CSS: li { margin-b
我在格式化我的 HTML 页面时遇到困难。 正如您从源代码中看到的那样,它是一个表格,其中每一行都包含由我的网络应用程序动态填充的格式化记录列表。如果其中一列有空值,我想保留行的格式,所以我基本上应该
我一直致力于设计一个具有三个链接的跨移动设备宽度的设计。我不明白为什么我不能得到正确的间距。什么看起来不对劲? 设计如下: 下面是编码版本的样子: 这是我的 CSS: .b-nav-Wrapper {
我需要在 matplotlib 中生成一大堆垂直堆叠的图。结果将使用 savefig 保存并在网页上查看,所以我不在乎最终图像有多高,只要子图间隔开,这样它们就不会重叠。 无论我允许这个数字有多大,子
我需要在 matplotlib 中生成一大堆垂直堆叠的图。结果将使用 savefig 保存并在网页上查看,所以我不在乎最终图像有多高,只要子图之间有间距,不重叠即可。 无论我允许图有多大,子图似乎总是
是否可以在 BorderPane 上设置节点之间的间距? ? Swing 等效项将是 BorderLayout 上的 hgap 和 vgap . 我在文档中没有找到任何内容,我能想到的唯一可行的解
我有一个基于日历的应用 我希望用户能够通过捏合来放大和缩小日历。这是我的代码: let p = UIPinchGestureRecognizer(target: self, action: #sele
我在为 Android 编写一段代码时遇到问题。我使用的是eclipse开发环境。我想要完成的是将一周中的日子均匀地分布在表格的第一行(有六行)。我不知道如何才能使这些单词真正散开,而不是仅仅粘在一起
我有一个基于日历的应用 我希望用户能够通过捏合来放大和缩小日历。这是我的代码: let p = UIPinchGestureRecognizer(target: self, action: #sele
我该怎么做才能对齐此代码中的所有列?这是正确的还是......? import urllib.request from re import findall def determinarLlegadas
当使用垂直对齐的 BoxLayout 时,如何阻止组件随着包含的 JFrame 的增长而扩展,从而在底部留下额外的空间?我尝试了不同的布局,但很快就变得一团糟。我还尝试在面板底部添加胶水,但布局管理器
我正在尝试制作 cout #include int main() { std::cout << setw(4) << 1 << setw(4) << 2 << std::endl; } 输出
使用示例 http://developer.android.com/guide/tutorials/views/hello-tabwidget.html通过向布局添加 HorizontalScro
我是一名优秀的程序员,十分优秀!