मैं <Table>
एचटीएमएल टैग की तुलना में एक समान व्यवहार करना चाहता हूं, इस अर्थ में जहां फ्रेम उसकी सामग्री के अनुसार आकार में है।इसकी सामग्री के आधार पर UIStackView का आकार कैसे लगाएं?
मेरे संदर्भ में, मैं UITtackView को UITableViewCell के सामग्री दृश्य के रूप में उपयोग करता हूं। चूंकि सेल में आइटम विभिन्न जानकारी हैं, इसलिए सेल की परिणामी ऊंचाई परिवर्तनीय होनी चाहिए।
मेरे रणनीति प्रोग्राम के रूप में, एक .Vertical अक्ष के साथ एक UIStackView के रूप में एक सेल का निर्माण करने के कोड स्निपेट में के रूप में इस प्रकार है:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
let sv = UIStackView(frame: tableview.frame)
sv.axis = .Vertical
cell.addSubview(sv)
for i in information {
let l = UILabel()
l.text = i
sv.addSubViewAndArrange(l)
}
return cell
}
दुर्भाग्य से, सेल के आकार सामग्री को समायोजित नहीं है, और के रूप में नतीजतन मुझे सेल ऊंचाई को स्वयं सेट करना होगा:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return cellHeight // a constant
}
मैं इसे कैसे ठीक कर सकता हूं?
मुझे लगता है कि आप ठीक ढंग से इस दृष्टिकोण काम करने के लिए सेल के साथ अपने stackView में रोके चाहिए:
यहाँ अंतिम परिणाम है। – zcui93
मैंने पहले से ही इस पथ का परीक्षण किया है (सेल में टीवी टी-टी, एल-एल, आर-आर, बी-बी बाधाओं को जोड़ा गया है), लेकिन इसके परिणामस्वरूप अल्ट्रा वाइड सेल (आप मुश्किल से एक ही समय में केवल एक सेल देखते हैं)। @ zcui93 –
अपने आप पर स्टैक व्यू सेल से बाधित होना चाहिए, ताकि सेल इसके साथ बढ़े। फिर सबव्यूव्स सेट अप करें ताकि स्टैकव्यू उनके "आंतरिक सामग्री आकार" के आधार पर ठीक से बढ़ेगा – zcui93