2016-10-14 21 views
5

स्टोरीबोर्ड में ग्लोबल टिंट सेट करने के तरीके की तरह, क्या वैश्विक फ़ॉन्ट-परिवार को कुछ और के रूप में सेट करना संभव है? उदाहरण के लिए, मैं सिस्टम से Source Sans Pro 16pt पर ग्लोबल/डिफ़ॉल्ट फ़ॉन्ट को बदलना चाहता हूं।एक्सकोड - स्टोरीबोर्ड में डिफ़ॉल्ट वैश्विक फ़ॉन्ट बदलें

  1. प्रत्येक लेबल, बटन, पाठ फ़ील्ड, स्टोरीबोर्ड में आदि के फ़ॉन्ट बदलें: हालांकि, मैं क्या (मेरी जानकारी के लिए) क्या करना निम्न में से एक है।
  2. स्विफ्ट viewDidLoad संहिता (this question की तरह) के माध्यम से या एक्सटेंशन के माध्यम से यह सेट के रूप में में this question

साथ (2) है कि मैं (1) में स्टोरीबोर्ड का उपयोग कर की तरह दृश्य फीडबैक नहीं मिलता है मेरी समस्या की व्याख्या की। दूसरी ओर, यह भी बहुत स्पष्ट नहीं है क्योंकि मुझे इसे मैन्युअल रूप से सेट करना है।

तो, क्या डिफ़ॉल्ट स्टोरीबोर्ड फ़ॉन्ट को बदलने/सेट करने का कोई तरीका है?

+0

क्षमा करें, लेकिन, बू: अपने टेक्स्ट फ़ील्ड, बटन, इत्यादि

कोड उदाहरण के रूप में लिंक ऊपर प्रति के लिए टाटन इत्यादि। यदि आप एक ग्लोबल कॉन्स्टेंट्सएच फ़ाइल बनाते हैं तो फ़ॉन्ट का एक वैरिएबल घोषित करें जैसे आईसीओएन_एफओटी = यूआईएफओटी (नाम: "ओपनसैन-बोल्ड" आकार: 30) दें और मैन्युअल रूप से प्रत्येक लेबल को फ़ॉन्ट दें। तो अब यदि आप फ़ॉन्ट बदलते हैं, तो वैश्विक कॉन्स्टेंट फ़ाइल में बस एक ही बदलाव। –

उत्तर

2

आप सूरत एपीआई का उपयोग कर सकते हैं, यह सुनिश्चित करें कि सभी नियंत्रण एक ही फ़ॉन्ट (कार्यावधि में) है कैसे उपस्थिति के साथ UIButton के लिए फ़ॉन्ट स्थापित करने के लिए करने के लिए के रूप में इस question पर

देखो।

UILabel और UITextView के लिए, निम्न कार्य करें। यह AppDelegate application(_:didFinishLaunchingWithOptions:)

let labelAppearance = UILabel.appearance() 
labelAppearance.font = UIFont.myFont() 

let textFieldAppearance = UITextView.appearance() 
textFieldAppearance.font = UIFont.myFont() 

पिछले समाधान में किया जा सकता है, तथापि स्टोरीबोर्ड अपडेट नहीं होगा।

नेत्रहीन स्टोरीबोर्ड पर परिवर्तन देखने के लिए, आपको समारोह

prepareForInterfaceBuilder() 

Here पर गौर कर सकते एक जवाब बताते हैं कि कैसे हो यह नेत्रहीन स्टोरीबोर्ड में अद्यतन करने के लिए है, लेकिन इस के लिए आप कस्टम वर्गों का उपयोग करने की आवश्यकता होगी आप मैन्युअल रूप से सभी लेबल का फ़ॉन्ट सेट करने के लिए

@IBDesignable 
public class MyUILabel: UILabel { 

    public override func awakeFromNib() { 
     super.awakeFromNib() 
     configureLabel() 
    } 

    public override func prepareForInterfaceBuilder() { 
     super.prepareForInterfaceBuilder() 
     configureLabel() 
    } 

    func configureLabel() { 
     font = UIFont(name: Constants.DefaultFont, size: 40) 
    } 

} 
+1

लेकिन कस्टम 'MyUILabel' के मामले में, आपको सभी UILabels की कक्षा को बदलना होगा, है ना? क्या यह सभी लेबलों के फ़ॉन्ट को बदलने के रूप में दोहराया नहीं गया है? – tika

+1

क्या यह उत्तर ओपी के नंबर की एक और विस्तृत व्याख्या नहीं है। 2? आईबी भाग को छोड़कर, लेकिन टीका की तरह कहा कि इसमें बहुत अधिक मूल्य नहीं जोड़ा गया है। – HAS

+0

@tika यह दोहराया जा सकता है (हालांकि मेरी राय यह है कि फ़ॉन्ट + आकार की तुलना में कक्षा को बदलना तेज़ है), लेकिन आप जो जीतते हैं, वह यह है कि जब आप पूरे ऐप का फ़ॉन्ट बदलना चाहते हैं, तो आप करते हैं यह एक ही स्थान पर है। –

संबंधित मुद्दे