我想使用SF的等宽数字字体在文本字段中显示整数,方法是更改字体,如下所示:
textField.font = UIFont.monospacedDigitSystemFontOfSize(textField.font!.pointSize, weight: UIFontWeightSemibold)
但如果我将文本字段的文本设置为60Hz频率,则结果为:
对于相同数量的数字,文本的宽度显然不是恒定的,因此它会移动所有的抖动,因为文本字段被限制为"领先"和"尾随"下面的图像。 为什么会出现这种情况以及如何解决?
另一种真正的等宽字体,如" Menlo"行为正确:
答案 0 :(得分:5)
所以似乎设置"调整以适应"文本字段的选项是覆盖字体的等宽属性(即使视图足够大以包含文本!)
此时我的临时解决方案是
textField.adjustsFontSizeToFitWidth
设为false
textField.adjustsFontSizeToFitWidth
至true
以便正确处理用户输入这不是我原本想要的,但它可以作为一种解决方法
答案 1 :(得分:1)
我有一个项目使用" adjust to fit"选项,如果我使用didSet
为标签出口设置等宽属性,它似乎适用于Xcode 8 Beta 3。
@IBOutlet weak var textLabel: UILabel! {
didSet {
textLabel = UIFont.monospacedDigitSystemFont(ofSize: textLabel!.pointSize, weight: UIFontWeightRegular)
}
}
答案 2 :(得分:0)
就我而言,我将UILabel的font
属性设置为等宽数字字体并使用attributedText
设置文本。这在iOS 9中有效,但在iOS 10中有效。解决方法是在属性字符串中明确设置字体属性。
答案 3 :(得分:0)
我遇到了同样的问题并设置了代码。更新了Swift 4:
if (isset($_POST['title'])) {
$query = "UPDATE articles
SET title = '{$_POST['title']}',
content = '{$_POST['content']}',
author = '{$_POST['author']}',
date = '{$_POST['date']}',
categoryId = {$_POST['categoryId']}
WHERE id = {$_GET['id']}
LIMIT 1";