如何在Xcode中为我的TableView添加顶部边距?

22

我想在表视图的第一个单元格顶部添加一张图片。如何使表视图具有顶部边距?目前,图片只是重叠在表视图上。我想让表视图下移一点。我不想使它变小或类似的东西。我只想在表视图顶部添加一个按钮。

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

                }



            }

        }
    }


}

这是一个UIViewController,你应该从UITableViewController继承,尝试在你的类声明中进行更改。 - Icaro
我一直收到断点错误。然后它引用我的应用程序委托,在那里它说我有一个sigabrt错误,但我甚至没有碰过我的故事板。 - Larry Navarro
1个回答

56

我不确定是否理解了你的问题,如果你想在表格和视图之间有一个边距,请尝试以下方法:

Swift 3

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

Swift 2

self.tableView.contentInset = UIEdgeInsetsMake(20, 0, 0, 0);

我应该把它放在哪里?我对Xcode还不太熟悉。我的viewController里面吗? - Larry Navarro
只需在您的tableViewController类中的viewDidLoad中添加即可。 - Icaro
由于某种奇怪的原因,它显示“找不到成员contentinset”。 - Larry Navarro
你可能需要发布一些代码,否则很难确定问题出在哪里。 - Icaro
1
这是一个比较老的问题,假设你已经找到了解决方案,但是看起来你没有将“tableview.contentInset”的“Inset”部分大写。 - David West

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接