2009-08-19 38 views
28

Tôi có mã sau trong Ứng dụng của mình.UILabel - thiết lập phông chữ - kiểu chữ lập trình trong iPhone

tmp=[[UILabel alloc] initWithFrame:label1Frame]; 
tmp.tag=1; 
tmp.textColor=[UIColor blackColor]; 
[tmp setFont:[UIFont fontWithName:@"American Typewriter" size:18]]; 
tmp.backgroundColor=[UIColor clearColor]; 
[cell.contentView addSubview:tmp]; 
[tmp release]; 

Bây giờ, tôi cần phải biết,

======> làm thế nào để thiết lập "kiểu chữ đậm =" thông qua mã?

+0

Bằng cách "Làm mờ bóng của nhãn" bạn có nghĩa là kích thước của hình mờ của nhãn không? – devinfoley

+0

@flashcards - Tôi nhận được giải pháp không cần phải tìm ra bóng. [tmp setshadowoffset: cgsizemake (1,1)]; –

+2

@sagar Bạn nên đăng câu trả lời đó cho câu hỏi của riêng bạn để câu trả lời được lưu lại. Chúc mừng! – devinfoley

Trả lời

36

Bạn sẽ cần sử dụng tên phông chữ bold trong gia đình. Để tìm hiểu xem có phiên bản Máy đánh chữ Mỹ bold hay không, hãy thử xuất ra

[UIFont fontNamesForFamilyName:@"AmericanTypewriter"] 

vào bảng điều khiển.

Trong trường hợp này, bạn nên sử dụng "AmericanTypewriter-Bold".

[UIFont fontNamesForFamilyName:@"AmericanTypewriter-Bold"] 
+0

@flashcards - không tôi đã thử logic của bạn, nhưng ứng dụng của tôi đã bị lỗi. –

+0

Hmmm ... có vẻ như fontNamesForFamilyName là một phương thức tĩnh trên UIFont có tên họ. Tôi sẽ sửa câu trả lời của tôi ngay bây giờ. Bạn đã thử sử dụng "AmericanTypewriter-Bold" chưa? – devinfoley

+5

@sagar - Không có khoảng cách giữa "Máy đánh chữ Mỹ". Tôi nghĩ rằng bạn đã đặt không gian giữa chúng. – Brij

20

gì về việc sử dụng tài sản setter:

// Create a string 
NSString *text = @"You are getting sleepy."; 

// Get a font to draw it in 
UIFont *font = [UIFont boldSystemFontOfSize:28]; 

// Draw the string 
[text drawInRect:(CGRect) 
withFont:font]; 
+0

Điều này chỉ hữu ích nếu bạn muốn sử dụng phông chữ hệ thống. @Spark không sử dụng phông chữ hệ thống. –

17

Chỉ NSLog Các font bạn muốn nhận được:

NSLog(@" %@", [UIFont fontNamesForFamilyName:@"American Typewriter"]); 

Và bạn sẽ có được các mảng:

(
    "AmericanTypewriter-CondensedLight", 
    "AmericanTypewriter-Light", 
    "AmericanTypewriter-Bold", 
    AmericanTypewriter, 
    "AmericanTypewriter-CondensedBold", 
    "AmericanTypewriter-Condensed" 
) 

Sử dụng bất kỳ điều gì bạn cần trong Mã số:

UILabel * loading = [[UILabel alloc] initWithFrame:CGRectMake(350, 402, 150, 25)]; 
    [loading setFont:[UIFont fontWithName:@"AmericanTypewriter-Bold" size:12.0]]; 
    [loading setTextColor:[UIColor whiteColor]]; 
    [loading setBackgroundColor:[UIColor clearColor]]; 
    [loading setText:@"Loading ..."]; 
    [self.view addSubview:loading]; 
1

Giống như @devinfoley đã viết, bạn phải thêm -Bold vào fontName bạn đang sử dụng. Đối với tôi, nó không hoạt động với fontNamesForFamilyName, thay vào đó tôi đang sử dụng fontWithName:size. Có lẽ nó hoạt động nếu bạn tạo ra các UILabel lập trình. Trong trường hợp của tôi, tôi chỉ cần đặt font bên trong phần mở rộng của UILabel trong awakeFromNib và đặt tiện ích này là class trong Identity Inspector cho UILabel cụ thể của tôi. Với self.font.pointSize, bạn có thể đặt fontSize bên trong Interface Builder và có thể xử lý tốt hơn nếu bạn có nhiều phần tử giao diện người dùng hơn.

- (void)awakeFromNib{ 

    [super awakeFromNib]; 
    [self setAdjustsFontSizeToFitWidth:YES]; 
    [self setFont:[UIFont fontWithName:@"Font-Bold" size:self.font.pointSize]]; 
} 

Nếu bạn font không hoạt động, bạn nên in tất cả fonts của gia đình, vì vậy bạn có thể thấy nếu bạn đã viết các fontName sai. Bằng cách này, bạn cũng có thể kiểm tra xem có sẵn phông chữ bold không, nếu nó không được in, bạn không có tùy chọn này.

NSLog (@"Available Fonts: %@", [UIFont fontNamesForFamilyName:@"Your Font"]); 

More font thứ: https://stackoverflow.com/a/8529661/1141395

2

Bạn có thể nhận được tất cả các iOS được hỗ trợ tên phông chữ trong trang web này iOSfonts. Hãy xem trước của chuỗi chính xác của bạn để tìm font tốt nhất và sử dụng nó như đã đề cập trong câu trả lời ở trên

UILabel * myLabel = [[UILabel alloc] initWithFrame:CGRectMake(100, 400, 150, 50)]; 
    [loading setFont:[UIFont fontWithName:@"Avenir-Black" size:12.0]]; 
    [loading setTextColor:[UIColor redColor]]; 
    [loading setBackgroundColor:[UIColor clearColor]]; 
    [loading setText:@"My Label Title"]; 
    [self.view myLabel]; 
0

Swift cập nhật

Nếu bạn đã thêm các phông chữ để ứng dụng (như đã giải thích here) bạn có thể sử dụng tính năng của Swift extension với, làm ví dụ, một UILabel và phông chữ Roboto:

extension UILabel { 

    func setFont(style: String, size: Int){ 
     self.font = UIFont(name: style, size: CGFloat(size)) 
    } 

    struct FontStyle { 
     public static let italic: String = "Roboto-LightItalic" 
     public static let normal: String = "Roboto-Light" 
     public static let thin: String = "Roboto-Thin" 
    } 
} 

Roboto-LightItalicRoboto-Light là tên tệp phông chữ của TTF. Sau đó, bạn có thể chỉ cần gọi

someUILabel.setFont(style: UILabel.FontStyle.normal, size: 20) 
Các vấn đề liên quan