दिलचस्प पोस्ट
इसके स्टडिन को सोचने में एक एप्लिकेशन को छलनी एक इंटरैक्टिव है, न कि पाइप UITextBorderStyleNone के साथ UITextField के लिए पैडिंग सेट करें मध्यम ट्रस्ट को खो दिया कारण के लिए विकसित करने की कोशिश कर रहा है? PHP के माध्यम से रूट कमांड निष्पादित करें "प्रकार 'डबल' के इनपुट आर्गुमेंट के लिए अपरिभाषित फ़ंक्शन 'function_name'।" सिंक्रनाइज़ ब्लॉक के बजाय सिंक्रनाइज़ किए गए विधि का उपयोग करने के लिए एक फायदा है? एक फ़ील्ड से दो को विभाजित मूल्य वापसी मूल्य त्रुटि को संशोधित नहीं किया जा सकता # निजी स्थिर सदस्यों को प्रारंभ करना मैं .gitconfig में खुद के लिए एकाधिक उपयोगकर्ताओं को निर्दिष्ट कर सकता हूँ? ट्यूपल्स की सूची को 2 आइटम से पूर्ण करें (पूर्णांक मान) जावास्क्रिप्ट केस असंवेदनशील स्ट्रिंग तुलना LinearLayout ScrollView के अंदर विस्तार नहीं कर रहा है पता लगाएं कि 24 घंटे डीटेटिम्स के बीच पारित हो चुके हैं – पायथन पूर्ण बेस्ड लाइन और रिकवरीकेस यूसीएम में वृद्धिशील बेसलाइन के बीच अंतर क्या है?

कस्टम तालिकादृश्य कोशिकाओं को तेज बनाते हुए

मेरे पास एक कस्टम सेल क्लास है जिसमें कुछ आईबीओटलेट्स हैं I मैंने स्टोरीबोर्ड को क्लास जोड़ा है। मैंने अपने सभी आउटलेट से जुड़ा है मेरे cellForRowAtIndexPath फ़ंक्शन इस तरह दिखता है:

override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as SwipeableCell cell.mainTextLabel.text = self.venueService.mainCategoriesArray()[indexPath.row] return cell } 

यहां मेरा कस्टम सेल क्लास है:

 class SwipeableCell: UITableViewCell { @IBOutlet var option1: UIButton @IBOutlet var option2: UIButton @IBOutlet var topLayerView : UIView @IBOutlet var mainTextLabel : UILabel @IBOutlet var categoryIcon : UIImageView init(style: UITableViewCellStyle, reuseIdentifier: String!) { super.init(style: style, reuseIdentifier: reuseIdentifier) } } 

जब मैं ऐप चलाता हूं, तो मेरे सारे सेल रिक्त होते हैं। मैंने स्वयं से बाहर लॉग इन किया है। self.venueService.mainCategoriesArray() और इसमें सभी सही तार हैं मैंने लेबल के बराबर एक वास्तविक स्ट्रिंग डाल करने की भी कोशिश की है, और वह उसी परिणाम का उत्पादन करती है

मैं क्या खो रहा हूँ? किसी भी मदद की सराहना की है

वेब के समाधान से एकत्रित समाधान "कस्टम तालिकादृश्य कोशिकाओं को तेज बनाते हुए"

कस्टम तालिका देखें सेल उदाहरण

स्विफ्ट 3 के लिए अपडेट किया गया

मूल प्रश्न के पूछने वालों ने अपनी समस्या का समाधान किया है मैं इस जवाब को जोड़ रहा हूं क्योंकि एक मिनी स्वयं के उदाहरण के लिए एक ऐसा परियोजना है जो एक ही काम करने की कोशिश कर रहे हैं।

समाप्त परियोजना इस तरह दिखनी चाहिए:

यहां छवि विवरण दर्ज करें

एक नई परियोजना बनाएं

यह सिर्फ एक एकल देखें अनुप्रयोग हो सकता है

कोड जोड़ें

अपनी परियोजना के लिए एक नई स्विफ्ट फाइल जोड़ें इसे MyCustomCell.swift नाम दें यह कक्षा आपके स्टोरीबोर्ड में अपने सेल में जो दृश्यों को जोड़ती है उसके लिए आउटलेट बनाएगा I

 import UIKit class MyCustomCell: UITableViewCell { @IBOutlet weak var myView: UIView! @IBOutlet weak var myCellLabel: UILabel! } 

हम इन आउटलेटों को बाद में कनेक्ट करेंगे।

ओपन व्यू नियंत्रक.swift और सुनिश्चित करें कि आपके पास निम्न सामग्री है:

 import UIKit class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { // These strings will be the data for the table view cells let animals: [String] = ["Horse", "Cow", "Camel", "Sheep", "Goat"] // These are the colors of the square views in our table view cells. // In a real project you might use UIImages. let colors = [UIColor.blue, UIColor.yellow, UIColor.magenta, UIColor.red, UIColor.brown] // Don't forget to enter this in IB also let cellReuseIdentifier = "cell" @IBOutlet var tableView: UITableView! override func viewDidLoad() { super.viewDidLoad() tableView.delegate = self tableView.dataSource = self } // number of rows in table view func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.animals.count } // create a cell for each table view row func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell:MyCustomCell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as! MyCustomCell cell.myView.backgroundColor = self.colors[indexPath.row] cell.myCellLabel.text = self.animals[indexPath.row] return cell } // method to run when table view cell is tapped func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { print("You tapped cell number \(indexPath.row).") } } 

स्टोरीबोर्ड सेटअप करें

अपने दृश्य नियंत्रक के लिए एक तालिका दृश्य जोड़ें और दृश्य नियंत्रक के चारों ओर पिन करने के लिए ऑटो लेआउट का उपयोग करें। फिर टेबल दृश्य पर एक टेबल व्यू सेल खींचें। और फिर प्रोटोटाइप सेल पर एक दृश्य और एक लेबल खींचें। (आपको प्रोटोटाइप सेल के निचले हिस्से को नीचे खींचने की आवश्यकता हो सकती है ताकि यह थोड़ा बड़ा हो।) दृश्य और लेबल को ठीक करने के लिए स्वत: लेआउट का प्रयोग करें कि आप उन्हें तालिका व्यू सेल की सामग्री दृश्य में कैसे व्यवस्थित करना चाहते हैं। उदाहरण के लिए, मैंने अपना दृश्य 100×100 बना दिया।

यहां छवि विवरण दर्ज करें

अन्य आईबी सेटिंग्स

कस्टम क्लास का नाम और पहचानकर्ता

तालिका दृश्य सेल का चयन करें और कस्टम क्लास को MyCustomCell (स्विफ्ट फ़ाइल में क्लास का नाम जो हमने जोड़ा है) सेट किया है। इसके अलावा cell होने के लिए पहचानकर्ता को भी सेट करें (उसी स्ट्रिंग जिसका हम उपर्युक्त कोड में cellReuseIdentifier लिए उपयोग किया था।

यहां छवि विवरण दर्ज करें

आउटलेट को हुक करें

  • स्टोरीबोर्ड में टेबल व्यू से दृश्य tableView को ViewController कोड में खींचें।
  • MyCustomCell क्लास में myView और myCellLabel चर में अपने प्रोटोटाइप सेल में दृश्य और लेबल के लिए ऐसा ही करें।

ख़त्म होना

बस। आप अब अपनी परियोजना को चलाने में सक्षम होना चाहिए।

टिप्पणियाँ

  • रंगीन विचार जो मैंने यहां इस्तेमाल किए थे, कुछ भी बदल सकते हैं। एक स्पष्ट उदाहरण UIImageView
  • यदि आप बस एक TableView को काम करने की कोशिश कर रहे हैं, तो इसे और भी अधिक बुनियादी उदाहरण देखें ।
  • यदि आप चर सेल ऊंचाई के साथ एक टेबल देखें की जरूरत है, यह उदाहरण देखें।

यह वही है जो कस्टम सेल के साथ काम कर रहे हैं

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{ let identifier = "Custom" var cell: CustomCell! = tableView.dequeueReusableCellWithIdentifier(identifier) as? CustomCel if cell == nil { tableView.registerNib(UINib(nibName: "CustomCell", bundle: nil), forCellReuseIdentifier: identifier) cell =tableView.dequeueReusableCellWithIdentifier(identifier) as? CustomCell }return cell} 

मेरी भी यही समस्या है।

आम तौर पर मैंने आपके साथ ऐसा ही किया है I

 class dynamicCell: UITableViewCell { @IBOutlet var testLabel : UILabel init(style: UITableViewCellStyle, reuseIdentifier: String) { super.init(style: style, reuseIdentifier: reuseIdentifier) } override func awakeFromNib() { super.awakeFromNib() } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } } 

और यूटिव्यूवरसेल विधि में:

 func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { var cell :dynamicCell = tableView.dequeueReusableCellWithIdentifier("cell") as dynamicCell cell.testLabel.text = "so sad" println(cell.testLabel) return cell; } 

और हाँ मेजव्यू कुछ भी नहीं दिखाता! लेकिन अनुमान करें कि यह वास्तव में कुछ क्या दिखा रहा है … क्योंकि प्रिंट लॉग से मुझे मिलेगा (cell.testLabel) दिखाता है कि सभी लेबल वास्तव में प्रदर्शित किए जाते हैं

परंतु! उनके फ्रेम्स अजीब हैं, जिनके पास कुछ ऐसा है:

फ्रेम = (0 -21; 42 21);

इसलिए इसकी (0, -21) के रूप में (एक्स, वाई) है, इसलिए इसका अर्थ है कि लेबल सेल के बगल में कहीं न कहीं दिखाई देता है।

इसलिए मैं मैन्युअल रूप से फ्रेम को एडजस्ट करने का प्रयास करता हूं:

cell.testLabel.frame = CGRectMake (10, 10, 42, 21)

और दुख की बात है, यह काम नहीं करता है।

————— 10 मिनट के बाद अपडेट करें —————–

मैंने यह किया। इसलिए, ऐसा लगता है कि समस्या आकार वर्गों से आती है।

अपनी .storyboard फ़ाइल पर क्लिक करें और फ़ाइल इंस्पेक्टर टैब पर जाएं

आकार वर्ग चेकबॉक्स को अनचेक करें

और अंत में मेरी "इतनी दुखी" लेबल बाहर आ गया!

सभी विभिन्न सुझावों के लिए धन्यवाद, परन्तु आखिरकार मैंने इसे सोचा। कस्टम वर्ग को सही ढंग से स्थापित किया गया था। मुझे जो करना था, स्टोरीबोर्ड में था जहां मैं कस्टम क्लास का चयन करता था: इसे हटा दें, और इसे फिर से चुनें यह ज्यादा मायने नहीं रखता है, लेकिन मेरे लिए काम खत्म हो गया।

अंतिम अद्यतन संस्करण xCode 6.1 के साथ है

 class StampInfoTableViewCell: UITableViewCell{ @IBOutlet weak var stampDate: UILabel! @IBOutlet weak var numberText: UILabel! override init?(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) } required init(coder aDecoder: NSCoder) { //fatalError("init(coder:) has not been implemented") super.init(coder: aDecoder) } override func awakeFromNib() { super.awakeFromNib() } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } } 

अनचेक "आकार क्लासेस" चेकबॉक्स मेरे लिए भी काम करता है, लेकिन आप इंटरफ़ेस बिल्डर में लापता बाधाओं को भी जोड़ सकते हैं। यदि आप अपने दम पर बाधाओं को जोड़ना नहीं चाहते हैं, तो बस अंतर्निहित फ़ंक्शन का उपयोग करें बाधाओं का उपयोग करना – मेरी राय में – बेहतर तरीका क्योंकि लेआउट डिवाइस (iPhone या iPad) से स्वतंत्र है।

यह स्पष्ट रूप से तेज संकेतन मेरे लिए एक काम है

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cellIdentifier:String = "CustomFields" var cell:CustomCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? CustomCell if (cell == nil) { var nib:Array = NSBundle.mainBundle().loadNibNamed("CustomCell", owner: self, options: nil) cell = nib[0] as? CustomCell } return cell! } 

[1] स्टोरीबोर्ड में पहली बार आपके टेबलव्यू सेल को डिजाइन करें

[2] नीचे तालिका दृश्य प्रतिनिधियों विधि डालें

// मार्क: – तालिकाव्यू प्रतिनिधि प्रतिनिधि

 func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return <“Your Array”> } func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { var totalHeight : CGFloat = <cell name>.<label name>.frame.origin.y totalHeight += UpdateRowHeight(<cell name>.<label name>, textToAdd: <your array>[indexPath.row]) return totalHeight } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell : <cell name>! = tableView.dequeueReusableCellWithIdentifier(“<cell identifire>”, forIndexPath: indexPath) as! CCell_VideoCall if(cell == nil) { cell = NSBundle.mainBundle().loadNibNamed("<cell identifire>", owner: self, options: nil)[0] as! <cell name>; } <cell name>.<label name>.text = <your array>[indexPath.row] as? String return cell as <cell name> } 

// मार्क: – कस्टम तरीके

 func UpdateRowHeight ( ViewToAdd : UILabel , textToAdd : AnyObject ) -> CGFloat{ var actualHeight : CGFloat = ViewToAdd.frame.size.height if let strName : String? = (textToAdd as? String) where !strName!.isEmpty { actualHeight = heightForView1(strName!, font: ViewToAdd.font, width: ViewToAdd.frame.size.width, DesignTimeHeight: actualHeight ) } return actualHeight } 

सेल में छवि दृश्य और लेबल के लिए टैग सेट करें

 func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return self.tableData.count } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("imagedataCell", forIndexPath: indexPath) as! UITableViewCell let rowData = self.tableData[indexPath.row] as! NSDictionary let urlString = rowData["artworkUrl60"] as? String // Create an NSURL instance from the String URL we get from the API let imgURL = NSURL(string: urlString!) // Get the formatted price string for display in the subtitle let formattedPrice = rowData["formattedPrice"] as? String // Download an NSData representation of the image at the URL let imgData = NSData(contentsOfURL: imgURL!) (cell.contentView.viewWithTag(1) as! UIImageView).image = UIImage(data: imgData!) (cell.contentView.viewWithTag(2) as! UILabel).text = rowData["trackName"] as? String return cell } 

या

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "imagedataCell") if let rowData: NSDictionary = self.tableData[indexPath.row] as? NSDictionary, urlString = rowData["artworkUrl60"] as? String, imgURL = NSURL(string: urlString), formattedPrice = rowData["formattedPrice"] as? String, imgData = NSData(contentsOfURL: imgURL), trackName = rowData["trackName"] as? String { cell.detailTextLabel?.text = formattedPrice cell.imageView?.image = UIImage(data: imgData) cell.textLabel?.text = trackName } return cell } 

गिटूब से टेबल इमेज लोडर भी देखें

वास्तविक ऐप्पल संदर्भ दस्तावेज़ीकरण काफी व्यापक है

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson7.html

जब तक आप यह हिस्सा नहीं देखते हैं, तब तक नीचे स्क्रॉल करें

यहां छवि विवरण दर्ज करें