【发布时间】:2016-07-03 18:42:57
【问题描述】:
字符串文字中的垂直条 | 字符在渲染时在 Xcode 和 iPad 模拟器上的显示方式不同。
基本上,我只是将一组值用竖线| 字符分隔为NSString 文字。
Objective-C 代码:
NSString cars = @"Ferrari | Maserati | Subaru | Porsche | Mazda | Renault | Aston | Cadillac"
这没什么特别的,但无论出于何种原因,它在 Xcode 和 iPad 模拟器中都以奇怪的形式出现。
问题截图:
绿色箭头显示|字符,看起来不错,但红色箭头指向的同一个字符看起来有点粗且模糊。
仅供参考:
- 我在
UILabel中呈现此字符串文字。 -
UILabel的字体为System- System,样式为Regular,大小为14
我真的为这个问题发疯了很长一段时间,无法弄清楚是什么原因造成的。
【问题讨论】:
-
唯一想到的就是检查标签的框架是否在小数点上。
-
这条线的宽度可能只有 1 px(或接近它的某个值)。如果该位置没有产生全像素位置,则将使用子像素(抗锯齿),这就是线条会模糊的原因。您也可以在所有其他角色上看到相同的模糊性。解决方案是使用单独的标签,其中每个分隔符都是一个视图,而不仅仅是字符串的一部分。然后您就可以将分隔符放在整数位置上。
-
实际上这是一个符合 Unicode 标准的“垂直线”字符。 “按位或”只是它在编程语言中的含义:fileformat.info/info/unicode/char/7c/index.htm
-
@Avi ,标签框是指放置 nslabel 的 uiview 上的尺寸?好吧 x 和 y 轴不包含任何小数值,事实上 xcode IB 不允许小数值。
-
@dreamweiver 这并不昂贵,只是需要更多的时间来实现。例如,您可以使用
UICollectionView。
标签: ios objective-c ipad nsstring