2011-02-01 53 views
91

Tôi có một UILabel mà tôi đặt kích thước phông chữ và tên phông chữ bằng Trình tạo giao diện. Bây giờ tôi phải đọc các giá trị của cả hai trong ViewController của tôi.Làm cách nào để có được kích thước phông chữ và tên phông chữ của một nhãn UILabel?

Tôi làm cách nào để thực hiện việc này?

+0

Phương pháp này đã được phản iOS7, hãy xem bài viết này http://stackoverflow.com/questions/19128797/calculating-uilabel-text-size – Maria

Trả lời

227

Thêm một tài sản để tập tin .h điều khiển xem của bạn:

@property (nonatomic, retain) IBOutlet UILabel *label; 

Liên kết nhãn với IBOutlet này trong cửa hàng "Chủ sở hữu tệp" trong Trình tạo giao diện. Nếu không sử dụng ARC, hãy chắc chắn bạn phát hành nó trong -dealloc

- (void)dealloc 
{ 
    [self.label release]; 
    [super dealloc]; 
} 

Sau đó, để có được tên phông chữ và kích thước tất cả bạn cần là

NSString *fontName = self.label.font.fontName; 
CGFloat fontSize = self.label.font.pointSize; 
+3

Không hoạt động. Tôi có thể viết văn bản trong đó, nhưng fontName và pointSize là null. – Tim

+0

Bạn có nghĩa là bạn có thể thay đổi chương trình văn bản của nhãn, nhưng bạn không thể truy cập vào fontName và pointSize? Tôi đã chỉnh sửa câu trả lời ở trên để bao gồm self.label, thay vì chỉ là nhãn, vì tôi không đề cập đến việc tạo một biến mẫu cho nhãn. – Ned

+0

Ngoài ra, hãy chắc chắn rằng bạn đã kết nối nhãn trong Interface Builder với IBOutlet bạn đã tạo trong File's Owner (bộ điều khiển xem). – Ned

1

bạn phải gắn nó vào một UILabel IBOutlet, và sau đó, label.font ...

15

Pointsize giá trị không phải là cỡ chữ của sử dụng trong UIFont kích thước tài sản. Giả sử nếu bạn đi thiết lập giao diện font size xây dựng lên 14 và làm một bản in của pointSize bạn sẽ nhận được chỉ 11.

+0

Dường như hiện đang hoạt động. Nếu tôi đặt kích thước phông chữ của nhãn trong trình chỉnh sửa trình xây dựng/bảng phân cảnh thành 17 ... 'myLabel.font.pointSize' trả về 17. –

15

Swift:

var currentFontSize = button.titleLabel?.font.pointSize 
Các vấn đề liên quan