ฉันจะรับขนาดตัวอักษรและชื่อแบบอักษรของ UILabel ได้อย่างไร


106

ฉันมี UILabel ที่กำหนดขนาดฟอนต์และชื่อฟอนต์ด้วย Interface Builder ตอนนี้ฉันต้องอ่านค่าของทั้งสองใน ViewController ของฉัน

ฉันจะทำเช่นนี้ได้อย่างไร?


วิธีนี้เลิกใช้ iOS7 แล้วลองดูบทความนี้ stackoverflow.com/questions/19128797/…
Maria

คำตอบ:


256

เพิ่มคุณสมบัติให้กับไฟล์. h ของตัวควบคุมมุมมองของคุณ:

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

เชื่อมโยงป้ายกำกับกับ IBOutlet นี้ภายใต้ช่อง "File's Owner" ใน Interface Builder หากไม่ได้ใช้ ARC ตรวจสอบให้แน่ใจว่าคุณปล่อยใน -dealloc

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

จากนั้นเพื่อให้ได้ชื่อแบบอักษรและขนาดสิ่งที่คุณต้องการคือ

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

3
ไม่ทำงาน, ไม่เป็นผล. ฉันสามารถเขียนข้อความได้ แต่ fontName และ pointSize เป็นโมฆะ
ทิม

คุณหมายความว่าคุณสามารถเปลี่ยนข้อความของป้ายกำกับโดยทางโปรแกรมได้ แต่คุณไม่สามารถเข้าถึง fontName และ pointSize ได้? ฉันแก้ไขคำตอบข้างต้นเพื่อรวม self.label แทนที่จะเป็นเพียงป้ายกำกับเนื่องจากฉันไม่ได้กล่าวถึงการสร้างตัวแปรอินสแตนซ์สำหรับป้ายกำกับ
เนด

ตรวจสอบให้แน่ใจว่าคุณได้เชื่อมต่อป้ายกำกับใน Interface Builder กับ IBOutlet ที่คุณสร้างไว้ใน File's Owner (ตัวควบคุมมุมมอง)
เนด

2
อ่าฉันลืมการเชื่อมต่อใน IB กับเจ้าของไฟล์
ทิม


16

ค่า Pointsize ไม่ใช่ขนาดฟอนต์ที่ใช้ในคุณสมบัติขนาด UIFont สมมติว่าคุณตั้งค่าขนาดฟอนต์ตัวสร้างอินเทอร์เฟซเป็น 14 แล้วพิมพ์ pointSize คุณจะได้แค่ 11


ดูเหมือนจะใช้งานได้แล้ว ถ้าฉันตั้งค่าขนาดตัวอักษรของป้ายกำกับในตัวสร้างอินเทอร์เฟซ / ตัวแก้ไขสตอรีบอร์ดเป็น 17 ... myLabel.font.pointSizeส่งคืน 17.
Derek Soike

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.