2015-06-25 23 views
6

Tôi muốn tạo lớp phủ văn bản cho hình ảnh của mình. Vấn đề là, nếu bị bệnh cố gắng thêm một văn bản thứ hai, giống như một phụ đề, nó bỏ qua kích thước phông chữ của tôi.CATextLayer bỏ qua kích thước phông chữ

titleLayer.frame = CGRectMake(0, 80, imageView.bounds.width, 50) 
    subTitleLayer.frame = CGRectMake(0, 130, imageView.bounds.width, 40) 

    titleLayer.string = "Title" 
    subTitleLayer.string = "Subtitle" 


    let fontName: CFStringRef = "HelveticaNeue" 
    let fontSubName: CFStringRef = "HelveticaNeue-Thin" 
    titleLayer.font = CTFontCreateWithName(fontName, 16, nil) 
    subTitleLayer.font = CTFontCreateWithName(fontSubName, 10, nil) // Ignores the font-size 

    imageView.layer.addSublayer(titleLayer) 
    imageView.layer.addSublayer(subTitleLayer) 

Phông chữ mới là chính xác nhưng luôn có cùng kích thước (16) như tiêu đềFont. Làm thế nào tôi có thể thay đổi kích thước phông chữ?

Trả lời

10

Hãy nhìn vào ghi chú này trên font property của CATextLayer

Nếu thuộc tính phông chữ là một CTFontRef, một CGFontRef, hoặc một thể hiện của NSFont, kích thước phông chữ của tài sản được bỏ qua.

Nó giải thích rõ ràng rằng kích thước phông chữ của CTFontRef bị bỏ qua. Để giải quyết vấn đề của bạn, bạn phải đặt rõ ràng thuộc tính fontSize của CATextLayer

titleLayer.fontSize = 16 
subTitleLayer.fontSize = 10 
+0

Cảm ơn bạn rất nhiều Zell B. Tôi gặp vấn đề này cả buổi chiều. Giao diện đó thực sự "nguy hiểm" từ Apple. Nó thực sự trơn tru, tôi đã bị bắt và không bao giờ thaught rằng tôi phải sao chép kích thước phông chữ vào tài sản khác ... –

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