2016-04-28 7 views
6

मैं एक ऑटो लेआउट समस्या डीबग करने की कोशिश कर रहा हूं, और सामग्री हगिंग और सामग्री संपीड़न प्रतिरोध प्राथमिकताओं के लिए डिफ़ॉल्ट मानों को जानना मदद करेगा।डिफ़ॉल्ट ऑटो लेआउट सामग्री हॉगिंग और सामग्री संपीड़न प्रतिरोध प्राथमिकता मान क्या हैं?

वे क्या हैं? क्या वे विशेष घटकों के लिए विशिष्ट हैं? क्या वहां स्थिरांक हैं जिनका उपयोग मैं उन्हें संदर्भित करने के लिए कर सकता हूं?

कीवर्ड: UILayoutPriority

उत्तर

17

ये मान रहे हैं अप-टू-डेट Xcode 7.3 के रूप में।


इंटरफ़ेस बिल्डर डिफ़ॉल्ट प्राथमिकता मान:

जब इंटरफ़ेस बिल्डर में एक घटक खींच, तो आपको निम्न प्राथमिकताओं मिलता है। नोट: (250,750)250 क्षैतिज, और 750 लंबवत के लिए खड़ा है।

+-------------------------+---------------+------------------------------+ 
|   Object   | Hugging (H,V) | Compression Resistance (H,V) | 
+-------------------------+---------------+------------------------------+ 
| UIActivityIndicatorView | 750,750  | 750,750      | 
| UIButton    | 250,250  | 750,750      | 
| UIDatePicker   | 250,250  | 750,750      | 
| UIImageView    | 251,251  | 750,750      | 
| UILabel     | 251,251  | 750,750      | 
| UIPageControl   | 250,250  | 750,750      | 
| UIPickerView   | 250,250  | 750,750      | 
| UIProgressView   | 250,750  | 750,750      | 
| UIScrollView   | 250,250  | 750,750      | 
| UISearchBar    | 250,250  | 750,750      | 
| UISegmentedControl  | 250,250  | 750,750      | 
| UISlider    | 250,250  | 750,750      | 
| UIStepper    | 750,750  | 750,750      | 
| UISwitch    | 750,750  | 750,750      | 
| UITabBar    | 250,250  | 750,750      | 
| UITextField    | 250,250  | 750,750      | 
| UITextView    | 250,250  | 750,750      | 
| UIToolbar    | 250,250  | 750,750      | 
| UIView     | 250,250  | 750,750      | 
+-------------------------+---------------+------------------------------+ 

निष्कर्ष:

  • सभी वस्तुओं 750,750 उनके सामग्री संपीड़न प्रतिरोध प्राथमिकता के रूप में की है।
  • बहुमत 250,250 उनके सामग्री हॉगिंग प्राथमिकता के रूप में है।
  • UIImageView और UILabel दोनों 251,251 उनके सामग्री हॉगिंग प्राथमिकता के रूप में हैं।
  • UIActivityIndicatorView, UIStepper, और UISwitch750,750 उनके सामग्री गले लगाना प्राथमिकता के रूप में की है।
  • UIProgressView250,750 है सामग्री हॉगिंग प्राथमिकता

प्रोग्रामेटिक डिफ़ॉल्ट प्राथमिकता मान:

जब एक वस्तु को प्रोग्राम के बनाने (जैसे UIButton()), तो आपको निम्न प्राथमिकताओं मिलता है।

+-------------------------+---------------+------------------------------+ 
|   Object   | Hugging (H,V) | Compression Resistance (H,V) | 
+-------------------------+---------------+------------------------------+ 
| UIActivityIndicatorView | 750,750  | 750,750      | 
| UIButton    | 250,250  | 750,750      | 
| UIDatePicker   | 750,750  | 750,750      | 
| UIImageView    | 250,250  | 750,750      | 
| UILabel     | 250,250  | 750,750      | 
| UIPageControl   | 750,750  | 750,750      | 
| UIPickerView   | 750,750  | 750,750      | 
| UIProgressView   | 250,750  | 750,750      | 
| UIScrollView   | 250,250  | 750,750      | 
| UISearchBar    | 250,750  | 750,750      | 
| UISegmentedControl  | 250,750  | 750,750      | 
| UISlider    | 250,750  | 750,750      | 
| UIStepper    | 750,750  | 750,750      | 
| UISwitch    | 750,750  | 750,750      | 
| UITabBar    | 250,750  | 750,750      | 
| UITextField    | 250,250  | 750,750      | 
| UITextView    | 250,250  | 750,750      | 
| UIToolbar    | 250,750  | 750,750      | 
| UIView     | 250,250  | 750,750      | 
+-------------------------+---------------+------------------------------+ 

निष्कर्ष:

  • सामग्री गले लगाना प्राथमिकता आईबी के बीच मतभेद के बाद वस्तुओं के लिए वस्तुओं और प्रोग्राम के रूप में instantiated वस्तुओं instantiated हैं: UIDatePicker, UIImageView, UILabel, UIPageControl, UIPickerView, UISearchBar, UISegmentedControl, यूआईस्लाइडर, यूआईटीएबीबार, और यूटूलबार।

प्रोग्रामेटिक स्थिरांक

+----------------------------------+-------+ 
|    Constant    | Value | 
+----------------------------------+-------+ 
| UILayoutPriorityRequired   | 1000 | 
| UILayoutPriorityDefaultHigh  | 750 | 
| UILayoutPriorityDefaultLow  | 250 | 
| UILayoutPriorityFittingSizeLevel | 50 | 
+----------------------------------+-------+ 

जब आप एक बाधा को जोड़ने (या तो इंटरफ़ेस बिल्डर या प्रोग्राम के रूप में के माध्यम से), उसके डिफ़ॉल्ट प्राथमिकता 1000 है।

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