Текст UIPickerView не выравнивается по центру, когда я переключаю язык RTL в iOS - PullRequest
0 голосов
/ 12 февраля 2019

Я использую метод делегата для установки заголовка 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
}

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

если вы используете поддержку языков 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
        }
0 голосов
/ 12 февраля 2019

НЕТ, чтобы попытаться использовать фрейм пользовательского интерфейса без этого.Дайте ограничение только вам, сборщику.

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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...