关于本地化中与IBInspectable相关的问题

时间:2016-10-06 09:43:33

标签: ios objective-c

在我的应用程序中,我使用IBInspectable字符串设置本地化文本,并使用按钮操作手动更改语言。

问题

  1. 我无法在手动更改语言时刷新UI。我需要在更改语言时刷新IBInspectable字符串。

1 个答案:

答案 0 :(得分:0)

我已经使用以下代码:

1. InterFace  and Implementation for UIView

@interface UIView (AdditionLocalization)
-(void)applyLocalization;
@end

@implementation UIView (AdditionLocalization)

-(void)applyLocalization{
    if ([self isKindOfClass:[UILabel class]]) {
        UILabel *lbl = (UILabel *)self;
        [lbl setLocalizedText:lbl.accessibilityLabel];
    }

}

2. InterFace  and Implementation for Label


  IB_DESIGNABLE
        @interface UILabel(LabelAdditionLocalizations)

        @property (nonatomic,copy)IBInspectable NSString *localizedText;
        @end



     @implementation UILabel(LabelAdditionLocalizations)
      @dynamic localizedText;



        -(void)setLocalizedText:(NSString *)localizedText{
                    self.text = [UtilityClass get:localizedText.length>0 ? localizedText : self.text alter:@""];
                    self.accessibilityLabel = localizedText.length>0 ? localizedText : nil;
                }

3.按钮单击时手动触发

- (IBAction)clickChangeLanguage:(id)sender {
    [UtilityClass setLanguage:current];
    for (UIView *view in self.view.subviews) {
        [view applyLocalization];
    }
}
相关问题