2016-10-06 3 views
-1

В моем приложении я устанавливаю текст локализации с использованием строки IBInspectable и также меняю язык, используя вручную, используя действие кнопки.О проблеме, связанной с IBInspectable в локализации

Выпуск

  1. Я не в состоянии обновить пользовательский интерфейс, а язык изменения вручную. Мне нужно обновить строку IBInspectable, пока я меняю язык.

ответ

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.Trigger вручную, когда кнопка мыши

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