2013-06-04 19 views
5

Tôi đang sử dụng functionnality iOS mới dịch cốt truyện (http://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/chapters/InternationalizeYourApp/InternationalizeYourApp/InternationalizeYourApp.html)iOS Storyboard chuỗi bản địa hóa không làm việc trên UILabel lớp con

Vấn đề với giải pháp này, nó không làm việc với các lớp con UILabel tôi.

Dưới đây là các mã cho lớp con UILabel tôi:

.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  

Tôi đoán tôi đang thiếu một cái gì đó để có được những bản dịch tự động từ tệp Storyboard.strings của tôi.

Có ai có ý tưởng không?

Cảm ơn!

+0

Bạn có thể tải xuống dự án thử nghiệm của mình: https://github.com/arn00s/iOS_BaseLocalization Chỉ cần chuyển đổi thiết bị lang từ EN sang FR và bạn sẽ thấy sự khác biệt. –

Trả lời

1

Tôi đã gặp sự cố tương tự và vì lý do tương tự, hãy đặt phông chữ tùy chỉnh trong nhãn. Tuy nhiên, chiến lược của tôi là tổng quát hơn một chút. Phông chữ tùy chỉnh của tôi giống như Helvetica, vì vậy tôi đã sử dụng Helvetica Neue trong IB làm phông chữ giữ chỗ. Lớp con UILabel đã dịch nó thành phông chữ tùy chỉnh của tôi, giữ nguyên cỡ chữ và trọng lượng, vì vậy tôi có thể kiểm soát tất cả thông qua IB.

Điều đó đã giải quyết cho lỗi dịch của tôi (tôi cho rằng đó là lỗi) dễ dàng hơn. Tôi duyệt tất cả các khung nhìn của tôi một cách đệ quy trong viewDidLoad và ánh xạ tất cả các phông chữ UILabel nếu chúng khớp với phông chữ giữ chỗ, và giống với UIButton trong trường hợp của tôi.

Bạn đã gửi lỗi chưa?

+1

Tôi đã không gửi lỗi, nhưng tôi đã yêu cầu Hỗ trợ kỹ thuật từ Apple. Họ nói với tôi rằng họ phải xem xét chi tiết với một kỹ sư (cách đây 1 tháng). Vẫn đang chờ trả lời ... –

+3

Tôi đang gặp sự cố tương tự. Vui lòng cập nhật khi bạn nghe từ Apple. –

+0

Mọi cập nhật về điều này? – Anastasia

1

gặp cùng một vấn đề, đây là cách tôi nhận xung quanh nó:

Thả lớp tùy chỉnh của bạn, và tạo ra một thể loại trên UILabel, trong trường hợp của bạn UILabel + ThinText:

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

Trong kịch bản của bạn, chọn nhãn của bạn, chọn nhận dạng Inspector và thêm dòng sau tài Runtime Defined Thuộc tính:

Keypath: thinText - Loại: Boolean - Value: kiểm tra

0

Tôi có vấn đề này quá. Tôi giải quyết nó thiết lập phông chữ tùy chỉnh trong mỗi ViewController. Hãy để tôi chỉ cho bạn một ví dụ:

CustomViewController.h 
@interface CustonViewController 

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

@end 

Các trong CustomViewController.m

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

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

Và đó là nó !. Bạn sẽ có bản dịch và phông chữ tùy chỉnh của mình.

Hãy nhớ xóa lớp tùy chỉnh khỏi StoryBoard.

Các vấn đề liên quan