How can I add a top margin to my tableview in Xcode?

19,743

I am not sure if I understand your question, if you are trying to have a margin between your table and the view try this:

Swift 3

self.tableView.contentInset = UIEdgeInsets(top: 20,left: 0,bottom: 0,right: 0)

Swift 2

self.tableView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0);
Share:
19,743

Related videos on Youtube

Larry Navarro
Author by

Larry Navarro

Updated on June 06, 2022

Comments

  • Larry Navarro
    Larry Navarro almost 2 years

    I'm trying to add an image on the very top of the first cell of a table view. How can i make the table view have a top margin? Right now, the image is just overlapping the tableview. I am trying to just get the table view to come down a little bit. I do not want to make it smaller or something like that. I just want to add a button to the top of the tableview.

    //
    //  usersVC.swift
    //  CaastRun
    //
    //  Created by Computer on 5/23/15.
    //  Copyright (c) 2015 Caast. All rights reserved.
    //
    
    import UIKit
    
    class usersVC: UIViewController, UITableViewDataSource, UITableViewDelegate {
    
    
    
        @IBOutlet weak var resultsTable: UITableView!
    
        var resultsNameArray = [String]()
        var resultsUserNameArray = [String]()
        var resultsImageFiles = [PFFile]()
    
        override func viewDidLoad() {
            super.viewDidLoad()
            let theWidth = view.frame.size.width
            let theHeight = view.frame.size.height
            resultsTable.frame = CGRectMake(0, 0, theWidth, theHeight)
    
        }
    
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
    
        override func viewDidAppear(animated: Bool) {
    
    
            resultsNameArray.removeAll(keepCapacity: false)
            resultsUserNameArray.removeAll(keepCapacity: false)
            resultsImageFiles.removeAll(keepCapacity: false)
    
            var query = PFUser.query()
    
            query!.whereKey("username", notEqualTo: PFUser.currentUser()!.username!)
    
            query!.findObjectsInBackgroundWithBlock {
                (objects:[AnyObject]?, error:NSError?) -> Void in
    
                if error == nil {
    
                    for object in objects! {
    
                        self.resultsNameArray.append(object.objectForKey("profileName") as! String)
                        self.resultsImageFiles.append(object.objectForKey("photo") as! PFFile)
                        self.resultsUserNameArray.append(object.objectForKey("username") as! String)
    
                        self.resultsTable.reloadData()
    
    
                    }
    
                }
    
            }
    
        }
    
    
        func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    
            return resultsNameArray.count
    
        }
    
        func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    
            return 64
    
        }
    
        func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    
            var cell:usersCell = tableView.dequeueReusableCellWithIdentifier("Cell") as! usersCell
    
            cell.profileLbl.text = self.resultsNameArray[indexPath.row]
            cell.usernameLbl.text = self.resultsUserNameArray[indexPath.row]
    
            var query = PFQuery(className: "follow")
    
            query.whereKey("user", equalTo: PFUser.currentUser()!.username!)
            query.whereKey("userToFollow", equalTo: cell.usernameLbl.text!)
    
            query.countObjectsInBackgroundWithBlock {
                (count:Int32, error:NSError?) -> Void in
    
                if error == nil {
    
                    if count == 0 {
    
                        cell.followBtn.setTitle("Follow", forState: UIControlState.Normal)
    
                    } else {
    
                        cell.followBtn.setTitle("Following", forState: UIControlState.Normal)
                    }
    
                }
    
            }
    
    
            self.resultsImageFiles[indexPath.row].getDataInBackgroundWithBlock {
                (imageData:NSData?, error:NSError?) -> Void in
    
                if error == nil {
    
                    let image = UIImage(data: imageData!)
                    cell.imgView.image = image
    
                }
    
            }
    
            return cell
    
        }
    
        @IBOutlet weak var searchText: UITextField!
    
    
        @IBAction func searchButton(sender: AnyObject) {
            resultsNameArray.removeAll(keepCapacity: false)
    
            resultsUserNameArray.removeAll(keepCapacity: false)
    
            resultsImageFiles.removeAll(keepCapacity: false)
    
            var query = PFUser.query()
    
            query!.whereKey("username", notEqualTo: PFUser.currentUser()!.username!)
    
            query!.whereKey("profileName", containsString: self.searchText.text)
    
            query!.findObjectsInBackgroundWithBlock {
    
                (objects:[AnyObject]?, error:NSError?) -> Void in
    
                if error == nil {
    
                    for object in objects! {
    
                        self.resultsNameArray.append(object.objectForKey("profileName") as! String)
    
                        self.resultsImageFiles.append(object.objectForKey("photo") as! PFFile)
    
                        self.resultsUserNameArray.append(object.objectForKey("username") as! String)
    
                        self.resultsTable.reloadData()
    
                    }
    
    
    
                }
    
            }
        }
    
    
    }
    
    • Icaro
      Icaro almost 9 years
      This is a UIViewController you should be inheriting from UITableViewController instead, try to change it in your class declaration
    • Larry Navarro
      Larry Navarro almost 9 years
      I keep on getting breakpoint errors. Then it refers me to my app delegate where it says I have a sigabrt error, but i have not even touched my storyboard.
  • Larry Navarro
    Larry Navarro almost 9 years
    Where do i put this? I'm a bit new to xcode. My viewController?
  • Icaro
    Icaro almost 9 years
    just add in the viewDidLoad from your tableViewController class
  • Larry Navarro
    Larry Navarro almost 9 years
    For some odd reason it says "Cannot find member contentinset"
  • Icaro
    Icaro almost 9 years
    You probably will need to post some of your code, otherwise is hard to tell what is wrong
  • David West
    David West about 8 years
    Pretty old one to revisit, so assuming you found a solution but looks like you didn't capitalise the 'Inset' part of "tableview.contentInset"