2016-12-24 22 views
8

Mới đến Spritekit và cố gắng sửa chiều rộng của SKLabelNode và sau đó điều chỉnh phông chữ để vừa với nút tương ứng.Điều chỉnh kích thước văn bản để phù hợp với SKLabelNode với chiều rộng cố định

đã được tìm kiếm thông qua các docs nhưng không thể dường như để tìm bất cứ điều gì phù hợp, giống như UILabel chức năng:

Một UILabel.adjustsFontSizeToFitWidth = true

Cảm ơn

+0

Bạn sẽ không tìm thấy nó :) Không có điều gì trên SKLabelNode. Những gì bạn có thể làm là tự mình tính toán mọi thứ. – Whirlwind

+0

Bummer, âm thanh đau đớn – dancingbush

+0

Thanh toán này: http://stackoverflow.com/a/31545212/3402095 – Whirlwind

Trả lời

3

Đây là một chức năng tốt đẹp mà tôi tìm thấy một khi trở lại, nhưng tôi không thể nhớ chính xác nơi

func adjustLabelFontSizeToFitRect(labelNode:SKLabelNode, rect:CGRect) { 

    // Determine the font scaling factor that should let the label text fit in the given rectangle. 
    let scalingFactor = min(rect.width/labelNode.frame.width, rect.height/labelNode.frame.height) 

    // Change the fontSize. 
    labelNode.fontSize *= scalingFactor 

    // Optionally move the SKLabelNode to the center of the rectangle. 
    labelNode.position = CGPoint(x: rect.midX, y: rect.midY - labelNode.frame.height/2.0) 
} 

Điều này sẽ điều chỉnh phông chữ ize của nhãn để phù hợp với chiều rộng chính xác, nhưng bạn có thể muốn thay đổi chức năng để thêm một số đệm thêm trên tất cả các bên.

+0

Rất cám ơn @Aidan, vì vậy tôi vượt qua SKLabelNode và kích thước UITextview gốc dưới dạng CGRect? Kế hoạch là lấy đầu vào của người dùng thông qua UITextField và nhập chuỗi cho biết trong phạm vi một SKLabelNode – dancingbush

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