有人注意到应用程序 UIPickerViews 中的文本渲染不正确,第一个字符被截断吗?我在多个设备上的应用程序的所有 UIPickerViews 中看到了这一点。在大多数情况下,您可以看到第一个字符的几个像素。
我尝试过从手机中删除派生数据和应用程序,但没有成功。
我不确定哪个更新可能引发了该问题,但它刚刚在一个已经稳定了几个月的项目中开始。标签的代码:
func pickerView(_ pickerView: UIPickerView,
viewForRow row: Int,
forComponent component: Int,
reusing view: UIView?) -> UIView
{
let pickerLabel = UILabel()
pickerLabel.text = "Rec.709"
pickerLabel.font = UIFont(name: "Ropa Sans", size: 18)
pickerLabel.textColor = UIColor.white
pickerLabel.textAlignment = NSTextAlignment.left
}
没有对我的 PickerViews 进行任何更改,但自从更新到 iOS 14 以来,我遇到了完全相同的问题。似乎 Apple 更改了 PickerView 实现中的某些内容。
我的 ViewForRow 函数返回一个包含三个标签的水平 UIStackView。通过向第一个标签的前缘和最后一个标签的后缘添加 15 点偏移约束,我能够暂时解决该问题:
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
var stackView: UIStackView
if view != nil {
stackView = view as! UIStackView
} else {
let leftLabel = UILabel()
let ctrLabel = UILabel()
let rightLabel = UILabel()
stackView = UIStackView(arrangedSubviews:[leftLabel, ctrLabel, rightLabel])
stackView.axis = .horizontal
stackView.distribution = .fill
// Temporary fix.
leftLabel.leadingAnchor.constraint(equalTo: stackView.leadingAnchor, constant: 15.0).isActive = true
rightLabel.trailingAnchor.constraint(equalTo: stackView.trailingAnchor, constant: -15.0).isActive = true
// Set text of labels here...
return stackView
}
我还无法检查,但我担心这个额外的余量现在在仍在运行旧版 iOS 版本的设备上可能看起来很奇怪。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)