UITableViewCell ऑटोमैटिक डायनामिक हाइट
iOS में टेबल व्यू सेल की ऊंचाई को डायनामिकली बदलने के लिए, यानी उपलब्ध कंटेंट के अनुसार सेल का आकार बदलने के लिए, हमें ऑटोमैटिक डायमेंशन प्रॉपर्टी का उपयोग करने की आवश्यकता होगी। हम इसे एक सैंपल प्रोजेक्ट की मदद से देखेंगे।
एक खाली प्रोजेक्ट बनाएं और इसके viewController क्लास पर जाएं, इसे UITableViewDataSource और UITableViewDelegate के अनुरूप बनाएं।
अब, नीचे दिए गए कोड में, हम पहले एक टेबल बनाएंगे, फिर उस टेबल के लिए एक सेल रजिस्टर करेंगे, और कुछ टेबल प्रॉपर्टीज जोड़ेंगे।
हम टेबल व्यू डेलीगेट और टेबल व्यू डेटा सोर्स सेट करेंगे।
अंत में हम टेबल व्यू को व्यू में जोड़ेंगे। फिर हम इस फंक्शन को अपने व्यू कंट्रोलर के viewDidLoad मेथड में कॉल करेंगे।
नोट: हमने estimatedRowHeight नामक एक प्रॉपर्टी सेट की है
func initTableView() {
let tableView = UITableView()
tableView.frame = self.view.frame
tableView.dataSource = self
tableView.delegate = self
tableView.backgroundColor = UIColor.lightGray
tableView.register(UITableViewCell.self, forCellReuseIdentifier: "cell")
tableView.estimatedRowHeight = UITableView.automaticDimension
self.view.addSubview(tableView)
}
अब, यह कोड हमारे व्यू में एक टेबल जोड़ेगा, हमें यह भी बताना होगा कि हमारे कोड में टेबल में कितने सेक्शन और पंक्तियां चाहिए।
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
यह कोड हमारे टेबल व्यू में दूसरी पंक्ति में टेक्स्ट की एक बड़ी लाइन बनाएगा ताकि यह कंटेंट साइज के अनुसार ऊंचाई प्राप्त करे।
नोट: UITableViewCell में डिफ़ॉल्ट रूप से एक लेबल प्रॉपर्टी होती है, और लेबल की डिफ़ॉल्ट रूप से 1 लाइन की लंबाई होती है, इसलिए हमें ऑटोमैटिक डायमेंशन को काम करते देखने के लिए इसे बदलने की आवश्यकता है।
अब हमें टेबल को बताना होगा कि उसकी सेल की ऊंचाई क्या होनी चाहिए।
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
जब हम उपरोक्त कोड चलाते हैं तो हमें निम्नलिखित परिणाम मिलता है:
