如何使用自定义类的表视图单元格进行本地化?

时间:2018-04-10 07:11:12

标签: ios swift xcode

我有一个TableViewController,其中包含TableView和标准TableViewCell

enter image description here

如果我将TableViewCell配置为样式Basic,我可以使用故事板本地化文件(* .strings)来翻译基本单元格的标签。这很有效。

storyboard.strings

"xAt-2c-UqjT.text" = "My Translated Text";

enter image description here

但是,如果我使用Custom Class作为标签,则不再考虑此标签的本地化文件,并且不会应用翻译。

自定义类扩展UILabel,如下所示:

import Foundation
import UIKit

class CustomLabel : UILabel {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        setStyle()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
    }

    override func prepareForInterfaceBuilder() {
        super.prepareForInterfaceBuilder()

        setStyle()
    }

    func setStyle() {
        self.font = FontConstants.NORMAL
        self.textColor = ColorConstants.TEXT_NORMAL
    }
}

为什么自定义标签的翻译不再有效,即使标签扩展为UILabel

更新:也许值得注意的是CustomLabel将在TableViewCell内的所有其他用法中正确翻译。

2 个答案:

答案 0 :(得分:0)

您需要在super上致电prepareForInterfaceBuilder

super.prepareForInterfaceBuilder()

答案 1 :(得分:0)

改为将TableViewCell配置为样式Custom