Storyboard 本地化一种方式

官方推荐的我就不说了,介绍下我如何做的。

子类化所有base UI控件,让我们实际创建的类继承自base UI,在willMoveToSuperview: 方法重新代码设置本地化。如

#import "XLTextView.h"

@implementation XLTextView

- (void)willMoveToSuperview:(UIView *)newSuperview
{
    [super willMoveToSuperview:newSuperview];
    
    self.text = NSLocalizedString(self.text, nil);
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code
}
*/

@end

之后就在SB里用这个类就行了。
缺点是需要继承。需要子类化所有bese UI。如果是闭源SDK UI控件不方便继承之能拖拉对象,自行处理了。

我曾想过用方法调试来处理本地化,但是这个黑魔法都建议在initialize方法处理。所以不太合适。如果有其他方法欢迎提出来。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,008评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 今天,破天荒地翻看我存了很多年的淘宝店铺收藏,发现很多很多的店都已经“人去楼空”,有点错愕。那些年,我们买过的东西...
    茉莉大大阅读 153评论 0 0
  • 健康 3.柔韧度 练习柔韧度不仅仅是拉韧带,关节、肌肉和肌腱的灵活度同样很重要。 柔韧度训练:静态和动态运动前做动...
    Lisa的小世界阅读 158评论 0 0
  • 主动比被动多了更多的可能性。 一种新的尝试,过程会怎样?期待
    无隐阅读 95评论 0 0