2016-02-03 7 views
8

एंड्रॉइड, डब्ल्यूपीएफ और अधिकतर प्लेटफार्म जिनके साथ मैं काम कर रहा हूं, के पास एक फ़ाइल में रंगों और शैलियों जैसे ui संसाधनों का पुन: उपयोग करने और "केंद्रीकृत" करने का तरीका है।आईओएस/एक्सकोड में रंगों और शैलियों का पुन: उपयोग कैसे करें?

एंड्रॉयड में इसे इस तरह करने के लिए posible है:

colors.xml फ़ाइल में

:

<color name="secondary_text_color">#ffcc67</color> 

किसी भी दृश्य में:

<TextView text="some text" textColor="@colors/secondary_text_color" /> 

वहाँ आईओएस में कुछ इसी तरह है?

मैं आईओएस में एंड्रॉइड को दोहराने की कोशिश नहीं कर रहा हूं, लेकिन मैं समझने के साथ संघर्ष कर रहा हूं कि क्या है (अगर कोई है) यूई रीयूजिंग पैटर्न का पालन किया जाना चाहिए।

एकमात्र चीज़ जो मैंने पार की है, कोड में थीम को परिभाषित करना है, और इसे कोड में पुन: उपयोग करना है, क्या यह सही तरीका है?

+0

PCH फ़ाइल का उपयोग एक परिभाषित करने के लिए जा रहे हैं में भरने एक आरजीबी मूल्य के साथ uicolor और उस स्थिर का उपयोग जारी रखें। –

+0

स्विफ्ट या उद्देश्य सी? – Devster101

+0

डेवस्टर 101 - स्विफ्ट – daneejela

उत्तर

10

आप इसे सिंगलटन क्लास या UIColor एक्सटेंशन का उपयोग करके कर सकते हैं। निम्नलिखित उदाहरण UIColor एक्सटेंशन है।

import Foundation 
import UIKit 

extension UIColor 
{ 
    class func someColor1() -> UIColor 
    { 
     return UIColor(red: 123.0/255.0, green: 162.0/255.0, blue: 157.0/255.0, alpha:1.0) 
    } 

    class func someColor2() -> UIColor 
    { 
     return UIColor(red: 154.0/255.0, green: 143.0/255.0, blue: 169.0/255.0, alpha:1.0) 
    } 
} 

बाद में आप की तरह

textField.textColor = UIColor.someColor2() 

संपादित रंग का उपयोग कर सकते हैं: तुम भी शैलियों के लिए एक ही कर सकते हैं, NSAttributedString

class StyleHelper : NSObject{ 

    class func getSecondaryTextWithString(textString:String) -> NSAttributedString 
    { 
     let secondaryTextStyleAttributes: [String : AnyObject] = [ 
      NSForegroundColorAttributeName: UIColor.greenColor(), NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleDouble.rawValue,NSFontAttributeName: UIFont.systemFontOfSize(14.0)] 
     let secondaryTextStyleString = NSAttributedString(string: textString, attributes:secondaryTextStyleAttributes) 
     return secondaryTextStyleString 
    } 
} 

का उपयोग करते समय आप शैली की आवश्यकता है, तो आप करेंगे

someLabel.attributedText = StyleHelper.getSecondaryTextWithString("SomeText") 
+0

मुझे यकीन नहीं है कि यह प्रश्न (पूर्ण) प्रश्न का उत्तर है, लेकिन मुझे यह उपयोगी लगता है, इसलिए मैं इसे अभी तक बढ़ा दूंगा। धन्यवाद – daneejela

1

यूआईसीओलर या यूआईएफओटी जैसी कक्षाओं के राकी उत्तर एक्सटेंशन में जोड़ना मैंने सबसे अधिक देखा है और भले ही आपको थोड़ा और टाइप करना है, यह आईओएस में बराबर है।

extension UIFont { 
class func myFont() -> UIFont { 
    return UIFont(name: "HelveticaNeue", size: 22)! 
} 

class func otherFont() -> UIFont { 
    return UIFont(name: "Arial", size: 22)! 
} 

}

एक और बात यह है कि एंड्रॉयड से आ रही प्रासंगिक हो सकती आईओएस प्रोग्रामिंग में एक तार फ़ाइल के बराबर है क्योंकि आप इन शैलियों पुन: उपयोग में रुचि होने लगते है। तार के लिए:

You can add a strings file to your project

और फिर तार आप अपने कोड में

"ACTION_CELL_MENU" =    "Menu"; 

फिर अपने अनुप्रयोग में उपयोग करने के लिए कहीं और

label.text = NSLocalizedString("ACTION_CELL_MENU", comment: "") 
संबंधित मुद्दे