当整个屏幕设置为 RTL 时,我们如何将 tableview 单元格的语义更改为 LTR?

How can we change the semantic to LTR of a tableview cell when the whole screen is set as RTL?

屏幕为阿拉伯语,语义设置为从右到左。整个屏幕由一个带有自定义单元格的 table 视图组成。我需要将 table 视图中其中一个单元格的语义更改为从左到右。该单元格有两个并排的文本字段

我试过了cell.countryCodeField.semanticContentAttribute = .forceLeftToRight 这不起作用

my custom cell

class EditmobileNumberCell: UITableViewCell {

    @IBOutlet weak var mobileNumberField: UITextField!
    @IBOutlet weak var countryCodeField: UITextField!
    @IBOutlet weak var hintLabel: UILabel!
    @IBOutlet weak var mobileNoPlaceHolder: UILabel!
    @IBOutlet weak var backView: UIView!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
            countryCodeField.addRightImage(image: #imageLiteral(resourceName: "icMobileDropdown"), contMode: .bottom)

        mobileNumberField.textAlignment = .left
        countryCodeField.textAlignment = .left
        hintLabel.textAlignment = .left
        mobileNoPlaceHolder.textAlignment = .left
        mobileNumberField.semanticContentAttribute = .forceLeftToRight
        countryCodeField.semanticContentAttribute = .forceLeftToRight
        hintLabel.semanticContentAttribute = .forceLeftToRight
        mobileNoPlaceHolder.semanticContentAttribute = .forceLeftToRight
    }

如有任何帮助,我们将不胜感激。提前致谢。

尝试cell.contentView.semanticContentAttribute = .forceLeftToRight

您需要为 tableView 更改 semanticContentAttribute,更改单元格 semanticContentAttribute 不会做任何更改。

tableView.semanticContentAttribute = .forceLeftToRight

这应该可以完成工作。

在单元格内创建一个视图并在其中添加所有控制器,然后使用视图 semanticContentAttribute 来 forceLeftToRight,在上述情况下写入 awakeFromNib() -

backView.semanticContentAttribute = .forceLeftToRight

这对我有用

只需在故事板的 leading/trailing 约束中取消选中 'Respect language direction'。那么您的语义事物将适用于该特定单元格: