قياس عرض بكسل من سلسلة
-
07-07-2019 - |
سؤال
وأحتاج لقياس عرض بكسل سلسلة في الكاكاو تاتش. يمكن لأي شخص أن يشير لي إلى ارتباط هذا ما يفسر كيفية القيام بذلك؟
المحلول
في نظام التشغيل اي فون الأمر مختلف قليلا، بدلا ننظر في NSString UIKit إضافات المرجعي . والفكرة هي نفسها كما في الكاكاو لنظام التشغيل Mac OS X، ولكن هناك المزيد من الطرق.
لخطوط واحدة من استخدام النص:
- (CGSize)sizeWithFont:(UIFont *)font
forWidth:(CGFloat)width
lineBreakMode:(UILineBreakMode)lineBreakMode
والنصوص ومتعدد الاستخدام:
- (CGSize)sizeWithFont:(UIFont *)font
constrainedToSize:(CGSize)size
lineBreakMode:(UILineBreakMode)lineBreakMode
وواستخدام UILineBreakMode
كوسيطة لسطر واحد من النص يمكن أن يكون مربكا، ولكن هذا لأنه يتم استخدام فاصل الأسطر أيضا لتحديد كيفية اقتطاع النص.
نصائح أخرى
ونلقي نظرة على في NSString تطبيق عدة إضافات المرجعي ، وتحديدا <لأ href = "http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSString_AppKitAdditions/Reference/Reference.html#/ / apple_ref / أورينت / instm / NSString / boundingRectWithSize: خيارات: الصفات: "يختلط =" noreferrer "> boundingRectWithSize:options:attributes:
. القيمة التي تم إرجاعها من قبل ذلك الروتين يجب أن يوفر لك عرض NSString
الخاص بك.
وهو مستنكر الآن الحل أعلاه. تحقق هذا لدائرة الرقابة الداخلية 7 +
sizeWithFont:constrainedToSize:lineBreakMode
وهو مستنكر الآن. استخدام التعليمات البرمجية المتكررة أدناه،
UIFont *font=[UIFont fontWithName:@"Arial" size:16.f];
NSString *name = @"APPLE";
CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];