2016-03-26 14 views
5

के लिए अंतर को ओवरराइड करें मुझे अक्सर लगता है कि UIStackView किसी विशेष लेआउट के लिए बिल्कुल सही है, सिवाय इसके कि मुझे व्यवस्थित सबव्यू के बीच कुछ परिवर्तनीय अंतर की आवश्यकता है। UIStackView अपनी धुरी के साथ विचारों की व्यवस्था करने के लिए spacing संपत्ति का उपयोग करता है, लेकिन क्या इन्हें ओवरराइड करने का कोई तरीका है? उदाहरण के लिए, मुझे आवश्यक अंतराल को परिभाषित करने के लिए दृश्य प्रारूप का उपयोग करके एक एकल मैनुअल बाधा जोड़ने में सक्षम होना पसंद है, और किसी भी तरह से स्टैक व्यू को पूर्व-प्राथमिकता दें।UIStackView

मैं UIStackView पूरी तरह से निश्चित रूप से छोड़ सकता है, लेकिन ढेर के छिपे subviews के बीच की जगह वापस देने के लिए क्षमता बहुत दोहराने के लिए मैन्युअल रूप से (जोड़ने और उदाहरण के लिए, के आधार की कमी है जिस पर देखा गया छिपे हुए हैं को हटाने) दर्दनाक होता है। मैंने व्यक्तिगत सबव्यूज़ को अपने स्वयं के स्टैक दृश्यों में लपेटने की भी कोशिश की ताकि मैं शीर्ष-मार्जिन जोड़ने के लिए स्टैक के layoutMargins का उपयोग कर सकूं। लेकिन इसके बाद इसमें उस सबव्यूव के अलावा रैपर-स्टैक के अपने छिपे हुए राज्य को प्रबंधित करने की आवश्यकता है (आश्चर्यजनक रूप से - मेरे लिए - UIStackView जिसका arrangedSubviews सभी छिपा हुआ है स्वचालित रूप से स्वयं छिपा हुआ नहीं है, इसलिए इसकी दूरी और मार्जिन वापस नहीं आती है इसका अपना पर्यवेक्षण)।

+0

नहीं सुंदर, लेकिन आप "रिक्त स्थान" है कि खाली दृश्य बना की एक सरणी जोड़ने के लिए एक एक्सटेंशन का उपयोग कर सकते हैं: http://stackoverflow.com/questions/32999159/कैसे-कर सकते हैं-ए-बनाने-uistackview-साथ-चर-दूरी-बीच-बार देखा गया – sdasdadas

उत्तर

1

आईओएस 11 से यह संभव है उपयोग करने के लिए:

stackView.setCustomSpacing(spacing: CGFloat, after: UIView) 
संबंधित मुद्दे