在为 OS X 开发时,您可以选择指定在DecimalTabStopType
一列数字的小数点上获得制表位。但是,此选项在 iOS 中不可用 - 有什么方法可以达到同样的效果吗?
问问题
249 次
2 回答
1
稍加努力,在iOS上就可以轻松实现同样的效果。首先,您添加一个Right
制表位。然后,您Left
在右侧添加一个非常小的制表位。[看来 tabStop 数组是按它们的偏移量排序的,所以你不能使用完全相同的偏移量。]
let centerTab = NSTextTab(textAlignment: .Right, location: width - 100, options: [:])
let leftTab = NSTextTab(textAlignment: .Left, location: width - 100 + 0.001, options: [:])
当您有计划编号时 - 没有小数点 - 您将附加“value\t”文本 - 该值与第一个制表位的左侧对齐,然后制表符将您带到下一个制表符。如果你有一个带小数点的字符串,将字符串分成两部分,然后传递字符串“firstPart”+“\t+”。”“secondPart”。
let nString: String
if case let array = item.value.componentsSeparatedByString(".") where array.count == 2 {
nString = array[0] + "\t." + array[1]
} else {
nString = item.value + "\t"
}
// append nString
您还可以使用它来对齐数字,其中一些是值,而另一些则带有尾随百分号(使用类似的技术)。
于 2016-02-16T19:17:53.933 回答
1
目前有对十进制制表位的内置支持,请参阅https://developer.apple.com/documentation/uikit/nstexttab/1535107-columnterminators
可以如下使用
let paragraphStyle = NSMutableParagraphStyle()
let terms = NSTextTab.columnTerminators(for: NSLocale.current)
let tabStop0 = NSTextTab(textAlignment: .right, location: 100, options:
[NSTabColumnTerminatorsAttributeName:terms])
于 2018-06-27T10:51:40.777 回答