我使用委托方法来设置UIPickerView
的标题并设置.center
对齐。但是如果我从英语切换到阿拉伯语,它是右对齐的。如果启动时语言为阿拉伯语,则在切换到英语后会左对齐。
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let title = getPickerViewTitle(for: row)
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 300, height: 37))
label.text = title
label.textAlignment = .center
label.backgroundColor = UIColor.clear
return label
}
发布于 2019-02-12 20:05:02
如果你有使用RTL语言的组件支持,那么你需要强制更新对齐。
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
var pickerLabel : UILabel
if let label = view as? UILabel {
pickerLabel = label
} else {
pickerLabel = UILabel()
pickerLabel.textColor = UIColor.black
if pickerLabel.effectiveUserInterfaceLayoutDirection == .rightToLeft {
pickerLabel.textAlignment = NSTextAlignment.center
}
}
pickerLabel.text = "10"
pickerLabel.sizeToFit()
return pickerLabel
}
发布于 2019-02-12 20:00:32
不需要在没有这个的情况下给UI标签框架尝试。只给你选择器的约束。
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView
{
var pickerLabel = UILabel()
pickerLabel.textColor = UIColor.blackColor()
pickerLabel.text = "PickerView Cell Title"
pickerLabel.font = UIFont.boldSystemFont(ofSize: 13)
pickerLabel.textAlignment = NSTextAlignment.Center
return pickerLabel
}
https://stackoverflow.com/questions/54649312
复制相似问题