تغيير خط النظام لتطبيق iPhone - التطبيق بأكمله

StackOverflow https://stackoverflow.com/questions/1710180

  •  19-09-2019
  •  | 
  •  

سؤال

هل هناك طريقة يمكنني تغيير خط النظام للحصول على تطبيق كامل؟

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

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

المحلول

جعل فئة مشتركة يسمى Constants.h أو شيء ما. في ذلك القيام بذلك:

#define kStandardFont [UIFont systemFontOfSize:20] 

بالطبع اضبط الخط ليكون ما تحتاج إليه. ثم، كلما كنت بحاجة إلى استخدامه (في تسمية أو أيا كان) قم بذلك:

#import "Constants.h"
…
…
… 
[label setFont:kStandardFont];

نصائح أخرى

يمكنك استخدام pixate. لتصميم التطبيق الخاص بك. عند استخدام Pixate، يمكنك تعيين سمات النمط لعناصر UI الخاصة بك عبر CSS. وبهذه الطريقة يمكنك إعداد عالمي Uilabels الخاص بك و UITEXTFILD وما إلى ذلك لاستخدام الخط المخصص الخاص بك. هذا هو أفضل طريقة إلى حد بعيد على المستوى العالمي لخط الخط الخاص بك.

في تطبيقي، اضطررت إلى استخدام "Open Sans" وإعداد جميع Uilabels، uitextFields و UITEXTVIEWS لاستخدام هذا الخط:

في "Default.css"

label {
    font-family: "Open Sans";
}

text-field {
    font-family: "Open Sans";
}

text-view {
    font-family: "Open Sans";
}

enter image description here

أعتقد أن الإجابة الصحيحة هي: لا تفعل ذلك! اكتشف لماذا تعتقد أنك تريد أن تفعل ذلك، ثم اكتشف طريقة أخرى لتحقيق نفس النهايات. وسيكون الناس هنا سعداء للمساعدة في معرفة طريقة أخرى إلى تلك النهايات. (على سبيل المثال، هذا ما يقترح إجابة ConeyeBey بشكل فعال.)

كل ما قله ... لا توجد طريقة في SDK الرسمية لتغيير خط النظام. قد تكون قادرا على جعل بعض التقدم من خلال Suizzling Uifont's SystemFontwithsize: الطريقة - انظر http://www.cocoadev.com/index.pl؟methodswizzl. لمزيد منهم على طريقة swizzling. ضع في اعتبارك ذلك (أ) سيؤدي ذلك إلى تغيير مظهر أي شيء يستخدم SystemFontWithSize: للحصول على خطي، (B) قد يؤدي هذا إلى كسر جميع أنواع الأشياء التي تعتمد على حجم الخط الأصلي، و (ج) قد هذا جيدا احصل على رفض من متجر التطبيقات.

كل هذه التحذيرات تضيف إلى السؤال: ما الذي تحاول حقا إنجازه مع هذا؟

يبدو للعمل على الأقل ل UILabelس:

@interface UIFont (mxcl)
@end
@implementation UIFont (mxcl)
+ (id)systemFontOfSize:(CGFloat)sz {
    return [UIFont fontWithName:@"AmericanTypewriter" size:sz]
}
+ (id)boldSystemFontOfSize:(CGFloat)sz {
    return [UIFont fontWithName:@"AmericanTypewriter-Bold" size:x]
}
@end

لا - لهذا السبب يطلق عليه النظام الخط، وليس تطبيق الخط.

الخطوط هي محددة لكل عنصر تحكم في واجهة المستخدم. بالنسبة إلى Exmaple، يحتوي كل Uilabel على إعداد الخط الخاص به.

إذا كنت ترغب في تغيير خط جميع عناصر التحكم، فسيتعين عليك تغييرها جميعا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top