का उपयोग कर समान रूप से @"|-[a(5)]-[b(8)]-[c(5)]-|"
में b
के लिए छोड़ दिया और सही जगह वितरित करने के लिए यह संभव है दृश्य प्रारूप तार का उपयोग कर रिक्ति वितरित?समान रूप से ऑटो लेआउट दृश्य प्रारूप स्ट्रिंग
उत्तर
सं
हालांकि, अगर आप यह दृश्य स्वरूप और एक मैनुअल बाधा निर्माण के साथ कर सकते हैं। करने के लिए अपने VFL स्ट्रिंग बदलें:
@"|-[a(5)]->=0-[b(8)]->=0-[c(5)]-|"
यह कहता है कि आप ए और बी, और बी और सी के बीच रिक्त स्थान का वास्तविक आकार के बारे में भी चिंतित नहीं हैं।
अब, constraintWithItem:...
का उपयोग कर पर्यवेक्षण के केंद्र में बी के केंद्र को पिन करने के लिए एक बाधा उत्पन्न करें (मैं इसे फोन पर टाइप कर रहा हूं इसलिए मुझे पूरी विधि को वर्तनी न करने के लिए क्षमा करें)।
यह आपके लचीला रिक्ति के साथ मिलकर, यहां तक कि छोड़ दिया और ख के अधिकार के लिए रिक्त स्थान दे देंगे।
यह ध्वनियां महान। मैं इसे एक शॉट दूँगा। धन्यवाद! – flohei
बस महान काम करता है। बहुत आसन। धन्यवाद! :-) – flohei
आपने "पर्यवेक्षण के केंद्र में बी के केंद्र को पिन कैसे किया", @flohei? और इसके लिए दृश्य प्रारूप का उपयोग करना भी संभव नहीं है या किसी को 'बाधा का उपयोग करना चाहिए': विशेषता: संबंधित: toItem: विशेषता: गुणक: निरंतर: '? –
एप्पल के Auto Layout Guide "स्पेसर दृश्य" का उपयोग कर पता चलता है। यहाँ बराबर रिक्ति क्षैतिज के साथ अपने तीन दृश्य बिछाने के लिए समाधान है:
// create views dictionary
NSMutableDictionary *viewsDictionary = [NSMutableDictionary dictionary];
[viewsDictionary addEntriesFromDictionary:NSDictionaryOfVariableBindings(viewA, viewB, viewC)];
// create 4 spacer views
for (int i = 0; i < 4; i++) {
UIView *spacerView = [[UIView alloc] init];
spacerView.hidden = YES;
[self addSubview:spacerView];
[viewsDictionary setObject:spacerView
forKey:[NSString stringWithFormat:@"spacer%d", i + 1]];
}
// disable translatesAutoresizingMaskIntoConstraints in views for auto layout
[viewsDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop)
{
[obj setTranslatesAutoresizingMaskIntoConstraints:NO];
}];
// add constraints
[superview addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:
@"|[spacer1(>=0)][viewA][spacer2(==spacer1)][viewB][spacer3(==spacer1)][viewC][spacer4(==spacer1)]|"
options:kNilOptions
metrics:nil
views:viewsDictionary]];
ध्यान दें कि spacer1
की चौड़ाई से अधिक 0. बाद स्पेसर विचारों spacer1
साथ बराबर चौड़ाई के लिए सेट कर रहे हैं होने के लिए निर्धारित है।
तो ऐसा कोई कारण तो आप बस नहीं लिखा था है 'NSDictionary * दृश्य = NSDictionaryOfVariableBindings (viewA, viewB, viewC);'? –
मैंने NSDictionaryOfVariable बाइंडिंग में एकाधिक तर्कों का उपयोग करने के लिए अपना उत्तर संपादित कर दिया है। मैं एक परिवर्तनीय शब्दकोश का उपयोग कर रहा हूं ताकि मैं गतिशील रूप से अपने स्पेसर दृश्य जोड़ सकूं। –
ओह, ठीक है।^___^'एनएसएमयूटेबल डिक्शनरी * विचार = NSDictionaryOfVariable बाइंडिंग्स (व्यूए, व्यूबी, व्यूसी) .mutableCopy; 'तब। –
- 1. sizeThatFits (फ्रेम लेआउट दृश्य के अंदर ऑटो लेआउट दृश्य)
- 2. ऑटो लेआउट
- 3. ऑटो लेआउट
- 4. ऑटो लेआउट
- 5. ऑटो लेआउट
- 6. देखें ऑटो-लेआउट बाधाओं को प्रोग्रामेटिक रूप से
- 7. Notepad ++ ऑटो प्रारूप Css
- 8. एक ही दृश्य के लिए ऑटो लेआउट से बाहर निकलना?
- 9. ऑटो लेआउट
- 10. ऑटो-लेआउट
- 11. आईओएस ऑटो लेआउट: प्रोग्रामेटिक रूप से सेट चौड़ाई बाधा
- 12. ऑटो लेआउट
- 13. सुरक्षित रूप से अविश्वसनीय प्रारूप स्ट्रिंग
- 14. NSTextV ऑटो लेआउट
- 15. iOS8 ऑटो लेआउट प्रोग्राम के रिश्तेदार लेआउट मार्जिन
- 16. ऑटो लेआउट बाधा परिवर्तन
- 17. आईओएस: ऑटो लेआउट
- 18. ऑटो लेआउट के साथ प्रोग्रामेटिक रूप से फ्रेम बदलें
- 19. लेआउट बटन इसलिए प्रत्येक स्थान को समान रूप से
- 20. चेतन ऑटो लेआउट समर्थित दृश्य का उपयोग कर UIKitDynamics
- 21. UICollectionViewCell में ऑटो लेआउट
- 22. मैकोज़ 10.12 ऑटो-लेआउट समस्याएं
- 23. विजुअल स्टूडियो ऑटो प्रारूप
- 24. आईओएस स्टोरीबोर्ड और ऑटो लेआउट
- 25. UIPageViewController + ऑटो लेआउट रोटेशन समस्या
- 26. दृश्य से लेआउट प्राप्त करें
- 27. ऑटो लेआउट = ViewWillAppear के दृश्य की गलत चौड़ाई है
- 28. ऑटो लेआउट UILabels
- 29. एंड्रॉइड: नेस्टेड लेआउट में गतिशील रूप से दृश्य जोड़ना
- 30. UIScrollView setContent ऑटो लेआउट
इस सवाल से संबंधित बहुत अच्छा लेख [यहां] (http://stackoverflow.com/questions/13075415/evenly-space-multiple-views-within-a-container-view/25898949#25898949) –