If no Table View results, display “No Results” on screen

后端 未结 14 1556
挽巷
挽巷 2020-11-30 17:25

I have a tableview, where sometimes there might not be any results to list, so I would like to put something up that says \"no results\" if the

14条回答
  •  有刺的猬
    2020-11-30 18:03

    Swift Version of above code :-

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    
        var numOfSection: NSInteger = 0
    
        if CCompanyLogoImage.count > 0 {
    
            self.tableView.backgroundView = nil
            numOfSection = 1
    
    
        } else {
    
            var noDataLabel: UILabel = UILabel(frame: CGRectMake(0, 0, self.tableView.bounds.size.width, self.tableView.bounds.size.height))
            noDataLabel.text = "No Data Available"
            noDataLabel.textColor = UIColor(red: 22.0/255.0, green: 106.0/255.0, blue: 176.0/255.0, alpha: 1.0)
            noDataLabel.textAlignment = NSTextAlignment.Center
            self.tableView.backgroundView = noDataLabel
    
        }
        return numOfSection
    }
    

    But If you are loading Information From a JSON , you need to check whether the JSON is empty or not , therefor if you put code like this it initially shows "No data" Message then disappear. Because after the table reload data the message hide. So You can put this code where load JSON data to an array. SO :-

    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    
        return 1
    }
    
    func extract_json(data:NSData) {
    
    
        var error: NSError?
    
        let jsonData: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers , error: &error)
        if (error == nil) {
            if let jobs_list = jsonData as? NSArray
            {
                if jobs_list.count == 0 {
    
                    var noDataLabel: UILabel = UILabel(frame: CGRectMake(0, 0, self.tableView.bounds.size.width, self.tableView.bounds.size.height))
                    noDataLabel.text = "No Jobs Available"
                    noDataLabel.textColor = UIColor(red: 22.0/255.0, green: 106.0/255.0, blue: 176.0/255.0, alpha: 1.0)
                    noDataLabel.textAlignment = NSTextAlignment.Center
                    self.tableView.backgroundView = noDataLabel
    
                }
    
                for (var i = 0; i < jobs_list.count ; i++ )
                {
                    if let jobs_obj = jobs_list[i] as? NSDictionary
                    {
                        if let vacancy_title = jobs_obj["VacancyTitle"] as? String
                        {
                            CJobTitle.append(vacancy_title)
    
                            if let vacancy_job_type = jobs_obj["VacancyJobType"] as? String
                            {
                                CJobType.append(vacancy_job_type)
    
                                if let company_name = jobs_obj["EmployerCompanyName"] as? String
                                {
                                    CCompany.append(company_name)
    
                                        if let company_logo_url = jobs_obj["EmployerCompanyLogo"] as? String
                                        {
                                            //CCompanyLogo.append("http://google.com" + company_logo_url)
    
                                            let url = NSURL(string: "http://google.com" + company_logo_url )
                                            let data = NSData(contentsOfURL:url!)
                                            if data != nil {
                                                CCompanyLogoImage.append(UIImage(data: data!)!)
                                            }
    
                                            if let vacancy_id = jobs_obj["VacancyID"] as? String
                                            {
                                                CVacancyId.append(vacancy_id)
    
                                            }
    
                                        }
    
                                }
    
                            }
                        }
                    }
                }
            }
        }
        do_table_refresh();
    
    
    }
    
    func do_table_refresh() {
    
        dispatch_async(dispatch_get_main_queue(), {
            self.tableView.reloadData()
            return
        })
    }
    

提交回复
热议问题