Làm cách nào để tôi có được kích thước phông chữ và tên phông chữ của UILabel?


105

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 mình.

Tôi có thể làm cái này như thế nào?


Phương pháp này đã được phản iOS7, hãy xem bài viết này stackoverflow.com/questions/19128797/...
Maria

Câu trả lời:


254

Thêm thuộc tính vào tệp .h của bộ điều khiển chế độ 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 đảm bảo bạn giải phóng nó trong -dealloc

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

Sau đó, để có được tên và kích thước phông chữ, tất cả những gì 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à trống.
Tim

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

Ngoài ra, hãy đảm bảo rằng bạn đã kết nối nhãn trong Trình tạo giao diện với IBOutlet bạn đã tạo trong Chủ sở hữu tệp (bộ điều khiển chế độ xem).
Ned

2
À, tôi quên kết nối trong IB với Chủ sở hữu tệp.
Tim


15

Giá trị kích thước điểm không phải là Kích thước phông chữ được sử dụng trong thuộc tính kích thước UIFont. Giả sử nếu bạn đặt kích thước phông chữ của trình tạo giao diện thành 14 và thực hiện in pointSize, bạn sẽ chỉ nhận được 11.


Có vẻ như đang làm việc bây giờ. Nếu tôi thiết lập kích thước font chữ của một nhãn trong trình soạn thảo xây dựng giao diện / storyboard đến 17 ... myLabel.font.pointSizelợi nhuận 17.
Derek Soike

1

bạn phải đính kèm nó vào một IBOutlet UILabel, và sau đó, label.font ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.