पर सबव्यूव्यू जोड़ें, मैं एक टेबल व्यू सेल लागू करने की कोशिश कर रहा हूं जो घर सुविधाओं का प्रतिनिधित्व करने वाले आइकन की एक श्रृंखला प्रदर्शित करता है (जैसे तौलिए, वाईफ़ाई, कपड़े धोने आदि)। सेल संभावित रूप से बड़ी संख्या में सुविधाओं को प्रदर्शित कर सकता है (घर के कितने पर निर्भर करता है), इसलिए मैं अधिकतम तीन प्रदर्शित करूंगा और संकेत दूंगा कि यदि आप तीन से अधिक हैं तो सेल पर क्लिक करके आप और अधिक देख सकते हैं। यहां बताया गया है कि यह (Airbnb के एप्लिकेशन से) की तरह दिखना चाहिए है:प्रोग्रामिंग रूप से UIStackView
मैं गतिशील तालिका दृश्य कक्ष में एक UIStackView को UIImageViews जोड़कर यह करने के लिए कोशिश कर रहा हूँ। मैं एक यूआईएसटीएक्स व्यू का उपयोग संरेखण सेट के साथ "भरने" और वितरण को "समान दूरी" पर सेट करने के साथ कर रहा हूं, यह विचार यह है कि स्टैक व्यू समान रूप से आइकन को स्थानांतरित करेगा चाहे इससे कोई फर्क नहीं पड़ता।
मैंने स्टोरीबोर्ड में स्टैक व्यू सेट अप किया। इसकी सामग्री दृश्य के शीर्ष, निचले, बाएं, और दाएं मार्जिन की बाधाएं हैं, ताकि यह मार्जिन तक तालिका दृश्य कक्ष भर सके।
यहां कोड है जिसे मैं गतिशील रूप से सेल में UIImageViews जोड़ने की कोशिश करने के लिए उपयोग कर रहा हूं। नोट amenities
मेरी छवि संपत्ति फ़ोल्डर में माउस के नाम के बराबर तार की एक सरणी है:
cell.stackView.backgroundColor = UIColor.greenColor()
var i = 0
while (i < amenities.count && i < 4) {
if (i < 3) {
let imageView = UIImageView(image: UIImage(named: amenities[i]))
imageView.contentMode = .ScaleAspectFit
imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.backgroundColor = UIColor.blueColor()
// Add size constraints to the image view
let widthCst = NSLayoutConstraint(item: imageView, attribute: NSLayoutAttribute.Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1.0, constant: 50)
imageView.addConstraint(widthCst)
// Add image view to stack view
cell.stackView.addSubview(imageView)
} else {
// Add a label to the stack view if there are more than three amenities
let label = UILabel()
label.text = "\(amens.count - i) more"
label.textAlignment = NSTextAlignment.Left
cell.stackView.addSubview(label)
}
i++
}
छवि विचारों की पृष्ठभूमि नीले और स्टैक दृश्य की पृष्ठभूमि का रंग हरा है।
ऐसा लगता है कि सभी छवि विचारों स्क्रीन के बाईं ओर एक दूसरे के ऊपर धकेल दिया जा रहा है: यहाँ जहां घर तीन सुविधाओं है एक मामले के लिए, परिणाम है। वे सेल के सामग्री दृश्य को ऊपर से नीचे तक भरते हैं, भले ही स्टैक व्यू सामग्री दृश्य मार्जिन पर पिन किया गया हो। दृष्टि में कोई हरा नहीं है, इसलिए ऐसा लगता है कि स्टैक व्यू सेल के मार्जिन पर पिन नहीं किया गया है।
कोई विचार क्या गलत है?
'addArrangedSubview' – dan