तालिका दृश्य में सूची आइटम जोड़ने के लिए कैसे तेजी से 5 में

वोट
0

मैं एक तालिका दृश्य में आइटम जोड़ने की कोशिश कर रहा हूँ। मुझे लगता है कि हर मैं बटन तालिका में एक नई पंक्ति आवेषण पर क्लिक करते हैं सकता है, लेकिन सेल खाली है। जब मैं कोड डीबग मैं सूची में सभी आइटम देख सकते हैं, लेकिन मैं नहीं देख सकते हैं उन्हें स्वयं ऐप पर प्रदर्शित। आइटम 1, 2 और 3 में अच्छी तरह से प्रदर्शित नहीं होते हैं

@IBOutlet weak var itemLbl: UITextField!
    var items: [String] = [1, 2, 3]

override func viewDidLoad() {
        super.viewDidLoad()
        tableView.tableFooterView = UIView(frame: CGRect.zero)


    }

func insertItem(){
    items.append(itemLbl.text!)

    let indexPath = IndexPath(row: items.count - 1,section: 0 )
    tableView.beginUpdates()
    tableView.insertRows(at: [indexPath], with: .automatic)
    tableView.endUpdates()
    itemLbl.text = 
    view.endEditing(true)
}

तो डालने का काम करता है, लेकिन मैं सिर्फ तालिका में पाठ प्रदर्शित नहीं कर सकते हैं। मुझे लगता है कि मैं मूल्य है कि मैं हाल ही में जोड़े के बजाय जोड़ने, लेकिन इसकी सिर्फ सफेद खाली जगह, हर आइटम के लिए एक नया सेल मिलता है

संपादित करें:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let itemLbl  =  items[indexPath.row]
        let cell = tableView.dequeueReusableCell(withIdentifier: ItemCell) as! ItemCell

        cell.itemLbl.text = itemLbl
        return cell
    }
02/12/2019 को 23:56
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
0

आप उपयोग कर की कोशिश की है tableView.reloadData()? इसके अलावा, खोलना मजबूर नहीं है itemLabel.text

func insertItem(){
    if let itemText = itemLabel.text {
       items.append(itemText)

       tableView.reloadData()
    }
}

भी जोड़ने के लिए सुनिश्चित करें कि tableView.reloadData()के अंत में viewDidLoad()

03/12/2019 को 00:16
का स्रोत उपयोगकर्ता

वोट
1

यह जब भी आपके डेटा स्रोत, बदलता है जो आप इस तरह कर सकते हैं तालिका फिर से लोड करने के लिए सबसे अच्छा है:

var items: [String] = ["1", "2", "3"] {
    didSet {
        tableView.reloadData()
    }
}

func insertItem(){
    if let text = itemLbl.text { 
        items.append(itemLbl.text)
    }
}
03/12/2019 को 00:54
का स्रोत उपयोगकर्ता

वोट
0

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

03/12/2019 को 02:24
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more