2013-06-04 50 views
5

我使用的是全新的iOS functionnality翻译的故事板(http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/chapters/InternationalizeYourApp/InternationalizeYourApp/InternationalizeYourApp.htmliOS的故事板本地化字符串不上工作的UILabel子类

这种解决方案的问题,它不与我的UILabel子类的工作。

下面是代码为我的UILabel子类:

.H:

#import <UIKit/UIKit.h> 
@interface LabelThinText : UILabel 
- (void)awakeFromNib; 
-(id)initWithFrame:(CGRect)frame; 
@end 

.M:

@implementation LabelThinText 

- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 
    [self setFont:[UIFont fontWithName:@"Raleway-Light" size:[[self font] pointSize]]]; 
} 

-(id)initWithFrame:(CGRect)frame 
{ 
    id result = [super initWithFrame:frame]; 
    if (result) { 
     [self setFont:[UIFont fontWithName:@"Raleway-Light" size:[[self font] pointSize]]]; 
    } 
    return result; 
} 

@end  

我想我失去了一些东西,以获得从自动翻译我的Storyboard.strings文件。

任何人有想法?

谢谢!

+0

您可以下载我的测试项目:https://github.com/arn00s/iOS_BaseLocalization只需将设备lang从EN切换到FR,即可看到不同之处。 –

回答

1

我遇到了同样的问题,并出于同样的原因,在标签中设置自定义字体。不过,我的策略比较一般。我的自定义字体是类似Helvetica的,所以我在IB中使用Helvetica Neue作为占位符字体。 UILabel子类将其转换为我的自定义字体,保留了字体大小和重量,所以我可以通过IB控制所有的字体。

这使我的翻译错误(我认为这是一个错误)的解决方法更容易。我在viewDidLoad中递归遍历所有视图,并映射所有UILabel字体(如果它们与占位符字体相匹配),而在我的情况下,它们与UIButton相同。

你提交了一个错误?

+1

我没有提交错误,但我要求Apple提供技术支持。他们告诉我他们必须仔细查看一名工程师(1个月前)。仍在等待答复... –

+3

我有类似的问题。请在Apple收到您的消息时更新。 –

+0

对此有何更新? – Anastasia

1

遇到同样的问题,这里就是我得到了周围:

放下你的自定义类,并在的UILabel创建类,你的情况的UILabel + ThinText:

- (void) setThinText:(BOOL)thinText 
{ 
    if (thinText) { 
     [self setFont:[UIFont fontWithName:@"Raleway-Light" size:[[self font] pointSize]]]; 
    } 
} 

在你的故事板,选择您的标签,选择身份检查,并添加以下用户自定义运行属性

的keyPath:thinText - 类型:布尔 - :检查

0

我这个问题了。我解决它在每个ViewController中设置自定义字体。让我告诉你一个例子:

CustomViewController.h 
@interface CustonViewController 

@property (strong, nonatomic) IBOutlet UILabel* someLabel; 

@end 

CustomViewController.m

- (void)viewDidLoad 
{ 
    [self setUoFonts]; 
} 

- (void)setUpFonts 
{ 
    self.someLabel.font = [UIFont fontWithName:@"AmaticSC-Regular" size:self.someLabel.font.pointSize]; 
} 

这就是它!你将有你的翻译和你的自定义字体。

记得从StoryBoard中删除自定义类。

相关问题