Handling an empty UITableView. Print a friendly message

前端 未结 22 1199
青春惊慌失措
青春惊慌失措 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:10

    Based on the answers here, here is a quick class I made that you can use on in your UITableViewController.

    import Foundation
    import UIKit
    
    class TableViewHelper {
    
        class func EmptyMessage(message:String, viewController:UITableViewController) {
            let rect = CGRect(origin: CGPoint(x: 0,y :0), size: CGSize(width: self.view.bounds.size.width, height: self.view.bounds.size.height))
            let messageLabel = UILabel(frame: rect)
            messageLabel.text = message
            messageLabel.textColor = UIColor.blackColor()
            messageLabel.numberOfLines = 0;
            messageLabel.textAlignment = .Center;
            messageLabel.font = UIFont(name: "TrebuchetMS", size: 15)
            messageLabel.sizeToFit()
    
            viewController.tableView.backgroundView = messageLabel;
            viewController.tableView.separatorStyle = .None;
        }
    }
    

    In your UITableViewController you can call this in numberOfSectionsInTableView(tableView: UITableView) -> Int

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        if projects.count > 0 {
            return 1
        } else {
            TableViewHelper.EmptyMessage("You don't have any projects yet.\nYou can create up to 10.", viewController: self)
            return 0
        }
    }
    

    With a little help from http://www.appcoda.com/pull-to-refresh-uitableview-empty/

提交回复
热议问题