سؤال

وأحتاج لقياس عرض بكسل سلسلة في الكاكاو تاتش. يمكن لأي شخص أن يشير لي إلى ارتباط هذا ما يفسر كيفية القيام بذلك؟

هل كانت مفيدة؟

المحلول

في نظام التشغيل اي فون الأمر مختلف قليلا، بدلا ننظر في 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}];
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top