如何在 Xcode 中为我的表格视图添加上边距?

Posted

技术标签:

【中文标题】如何在 Xcode 中为我的表格视图添加上边距?【英文标题】:How can I add a top margin to my tableview in Xcode? 【发布时间】:2015-08-21 02:30:02 【问题描述】:

我正在尝试在表格视图的第一个单元格的最顶部添加图像。如何使表格视图具有上边距?现在,图像只是与 tableview 重叠。我试图让表格视图下降一点。我不想让它变小或类似的东西。我只想在 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()

                



            

        
    



【问题讨论】:

这是一个 UIViewController 你应该从 UITableViewController 继承,尝试在你的类声明中改变它 我不断收到断点错误。然后它把我引向我的应用程序委托,它说我有一个 sigabrt 错误,但我什至没有碰过我的故事板。 【参考方案1】:

我不确定我是否理解您的问题,如果您想在表格和视图之间留出空白,请尝试以下操作:

斯威夫特 3

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

斯威夫特 2

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

【讨论】:

我把这个放在哪里?我对xcode有点陌生。我的视图控制器? 只需从 tableViewController 类中添加 viewDidLoad 出于某种奇怪的原因,它显示“找不到成员内容集” 你可能需要发布你的一些代码,否则很难判断出什么问题 很老的一个要重新访问,所以假设你找到了一个解决方案,但看起来你没有大写“tableview.contentInset”的“插入”部分

以上是关于如何在 Xcode 中为我的表格视图添加上边距?的主要内容,如果未能解决你的问题,请参考以下文章

如何将约束添加到相对于父视图边距的按钮,使其显示为距上边距 30 和距右边距 30

如何在我的 podfile 中为我的 Xcode 项目指定多个目标?

如何通过xcode对边距约束应用乘数?

无法在 Xcode 中为启动屏幕设置自动布局约束

当上边距不完全可见时,UITableView 单元格展开动画会发生变化

如何在通知内容扩展中为我的自定义视图应用自定义字体/颜色和半透明背景?