Swift - 如何更改此表视图的框架?

时间:2016-10-08 01:32:16

标签: ios swift uitableview

picture

如何调整此表格视图的大小,以便我可以在屏幕顶部放置2个按钮而不会与表格视图重叠?在我的屏幕上我只有按钮。没有表视图容器。

我的代码:

class FriendListViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var tableView: UITableView!
var friendArray: [Friends] = [];

let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext

override func viewDidLoad() {
    super.viewDidLoad()

    tableView = UITableView(frame: UIScreen.mainScreen().bounds, style: UITableViewStyle.Plain)
    tableView.delegate = self
    tableView.dataSource = self
    tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
    self.view.addSubview(self.tableView)


    let entityDescription = NSEntityDescription.entityForName("Friends", inManagedObjectContext:
    managedObjectContext)

    let request = NSFetchRequest()
    request.entity = entityDescription

    var friendObjs = [Friends]()

    do {
        friendObjs = try managedObjectContext.executeFetchRequest(request) as! [Friends]
    }
        catch {
            // show something
    }
    for friend in friendObjs {
        friendArray.append(friend)
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
    return friendArray.count;
}

// assign the values in your array variable to a cell
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{

    let cell:UITableViewCell=UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "cell")
    cell.textLabel!.text = friendArray[indexPath.row].firstName;
    return cell;
}

// Register when user taps a cell via alert message
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
    let alert = UIAlertController(title: "Selected Item", message: "clicked", preferredStyle: UIAlertControllerStyle.Alert)
    alert.addAction(UIAlertAction(title: "Okay", style: UIAlertActionStyle.Default, handler: nil))
    self.presentViewController(alert, animated: true, completion: nil)
}

2 个答案:

答案 0 :(得分:0)

一个选项是添加包含按钮的标题视图。这需要设置tableView的headerView属性或使用tableView委托方法。

另一种选择是添加视图并将其添加到框架的顶部。然后,您需要在初始化时调整表格视图的框架,以将其添加到该自定义视图下方。

为了显示数据,我注意到的一点是在提取完成后重新加载表视图。

答案 1 :(得分:0)

您是否尝试过放置一个tableview标题,您可以创建一个视图并设置符合您需要的帧并添加2个按钮。使用刚刚创建的视图对象设置tableview的tableviewviewheader属性。

let headerView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 50))

将您的按钮作为子视图添加到headerView,然后

self.tableView.tableHeaderView = headerView