Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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()

                }



            }

        }
    }


}
like image 232
Larry Navarro Avatar asked Jun 06 '15 02:06

Larry Navarro


People also ask

Why is there extra padding at the top of my UITableView?

Starting in iOS7, there is additional space at the top of my UITableView 's which have a style UITableViewStyleGrouped . The tableview starts at the first arrow, there are 35 pixels of unexplained padding, then the green header is a UIView returned by viewForHeaderInSection (where the section is 0).

How do you populate a tableView?

In order to populate the tableview, you need to: In the storyboard, set your view controller to be the datasource of the tableview by dragging the "datasource" connection from the connections menu of the table view to your view controller. Make your view controller conform to the UITableViewDataSource protocol.


1 Answers

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);
like image 100
Icaro Avatar answered Oct 16 '22 20:10

Icaro