Handling an empty UITableView. Print a friendly message

前端 未结 22 1206
青春惊慌失措
青春惊慌失措 2020-12-04 05:22

I have a UITableView that in some cases it is legal to be empty. So instead of showing the background image of the app, I would prefer to print a friendly message in the scr

22条回答
  •  感动是毒
    2020-12-04 06:07

    Swift version but better and simpler form . **3.0

    I hope it server your purpose......

    In your UITableViewController .

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if searchController.isActive && searchController.searchBar.text != "" {
            if filteredContacts.count > 0 {
                self.tableView.backgroundView = .none;
                return filteredContacts.count
            } else {
                Helper.EmptyMessage(message: ConstantMap.NO_CONTACT_FOUND, viewController: self)
                return 0
            }
        } else {
            if contacts.count > 0 {
                self.tableView.backgroundView = .none;
                return contacts.count
            } else {
                Helper.EmptyMessage(message: ConstantMap.NO_CONTACT_FOUND, viewController: self)
                return 0
            }
        }
    }
    

    Helper Class with function :

     /* Description: This function generate alert dialog for empty message by passing message and
               associated viewcontroller for that function
               - Parameters:
                - message: message that require for  empty alert message
                - viewController: selected viewcontroller at that time
             */
            static func EmptyMessage(message:String, viewController:UITableViewController) {
                let messageLabel = UILabel(frame: CGRect(x: 0, y: 0, width: viewController.view.bounds.size.width, height: viewController.view.bounds.size.height))
                messageLabel.text = message
                let bubbleColor = UIColor(red: CGFloat(57)/255, green: CGFloat(81)/255, blue: CGFloat(104)/255, alpha :1)
    
                messageLabel.textColor = bubbleColor
                messageLabel.numberOfLines = 0;
                messageLabel.textAlignment = .center;
                messageLabel.font = UIFont(name: "TrebuchetMS", size: 18)
                messageLabel.sizeToFit()
    
                viewController.tableView.backgroundView = messageLabel;
                viewController.tableView.separatorStyle = .none;
            }
    

提交回复
热议问题