मैं आपसे स्वचालित ऊंचाई के साथ एक टेबलव्यू बनाने में मदद मांग रहा हूं

मेरा लक्ष्य कुछ डेटा (जैसे तार) के साथ एक तालिका दृश्य बनाना है। लेकिन मेरे मामले में, मेरे पास 4, 7 या 22 तार हो सकते हैं। तो, मेरा लक्ष्य इस टेबल व्यू के अंदर स्क्रॉल किए बिना सभी स्ट्रिंग्स को सूचीबद्ध करना है, लेकिन सभी मुख्य स्क्रॉल व्यू में

मुझे पता है कि स्वचालित पंक्ति कोशिकाओं की ऊंचाई कैसे प्राप्त करें, लेकिन ऐसा लगता है कि मुझे अपने टेबलव्यू में ऊंचाई या नीचे की बाधा निर्धारित करनी है और यह मेरा लक्ष्य नहीं है।

यदि आप सीसीएस जानते हैं, तो लक्ष्य "ऊंचाई: ऑटो;" जैसा प्रस्तुत करना है। बस, इतना ही।

आशा है कि आप मेरे लिए कुछ अच्छी खबरें पढ़ेंगे। धन्यवाद

0
noxo. 19 पद 2019, 04:47

3 जवाब

स्टोरीबोर्ड में प्रारंभिक ऊंचाई की बाधा सेट करें और इसके लिए एक आउटलेट कनेक्ट करें। टेबलव्यू डेटा प्राप्त करने और self.tableView.reloadData() को कॉल करने के बाद कोशिश करें:

self.tableViewHeightConstraint.constant = self.tableView.contentSize.height

0
DrewG23 19 पद 2019, 05:04

उस रैप टेबलव्यू के लिए UIScrollView के अंदर, फिर टेबलव्यू की ऊंचाई निर्धारित करें और टेबलव्यू ऊंचाई का आउटलेट लें,

@IBOutlet weak var heightOfTable: NSLayoutConstraint!

उसके बाद हमें हर बार टेबलव्यू की ऊंचाई का निरीक्षण करने की आवश्यकता होती है, इसके लिए नीचे दिए गए तरीकों को अपने UIViewController में जोड़ें।

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    tableView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    tableView.removeObserver(self, forKeyPath: "contentSize")
}

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    if keyPath == "contentSize" {
        heightOfTable.constant = min(tableView.contentSize.height, UIScreen.main.bounds.height * 0.6)
    }
}
0
Jaydeep Vora 19 पद 2019, 06:58
आपके उत्तर के लिए धन्यवाद। मेरे पास सामग्री का स्वत: आकार बदल गया था लेकिन मेरा स्क्रॉल व्यू काम नहीं करता है। मैंने अपनी तालिका के नीचे एक uiview रखा है, निश्चित ऊंचाई के साथ दृश्य और मेरे तालिका दृश्य का आकार बदल दिया गया है (छोटा)।
 – 
noxo.
19 पद 2019, 23:38

आपको ऊंचाईफॉररो इवेंट में UITableView.AutomaticDimension का उपयोग करना होगा। इसके अलावा आपको viewDidLoad में अनुमानित रोहाइट सेट करना होगा।

इससे पहले आपको अपने टेबलव्यू सेल को लेबल पर कोई ऊंचाई की कमी दिए बिना डिजाइन करना होगा। (मुझे लगता है कि आप लेबल का उपयोग कर रहे हैं।), आपको लेबल लाइनकाउंट 0 भी देना होगा।

जब आपने यह सब किया है, तो यह अवश्य किया जाना चाहिए। अगर आप चाहें तो आप अपना कोड साझा कर सकते हैं और मैं आपकी मदद कर सकता हूं।

0
Cemal BAYRI 19 पद 2019, 08:54