Ios 如何在IB中tableView的第一个单元格上方添加UI元素?

Ios 如何在IB中tableView的第一个单元格上方添加UI元素?,ios,Ios,我有一个TableViewController,在第一个单元格上方有一个UI元素(齿轮按钮)。我可以通过在viewDidLoad中添加以下代码来实现这一点: self.tableView.contentInset = UIEdgeInsetsMake(60.0, 0.0, 0.0, 0.0) 然后以编程方式创建按钮 // Setting up menubutton let menuButton = UIButton.buttonWithType(UIButtonType.System) a

我有一个TableViewController,在第一个单元格上方有一个UI元素(齿轮按钮)。我可以通过在viewDidLoad中添加以下代码来实现这一点:

self.tableView.contentInset = UIEdgeInsetsMake(60.0, 0.0, 0.0, 0.0)
然后以编程方式创建按钮

// Setting up menubutton
let menuButton   = UIButton.buttonWithType(UIButtonType.System) as UIButton
menuButton.frame = CGRectMake(15, -45, 25, 25)
menuButton.setBackgroundImage(UIImage(named:"menu55_White.png"),forState: UIControlState.Normal)
menuButton.addTarget(self, action: "didTapMenuButton:", forControlEvents: .TouchUpInside)
self.view.addSubview(menuButton)
当用户向下滚动tableview时,设置会使菜单按钮滚动离开

我是以编程方式这样做的,因为我无法在interface builder中获得相同的结果。但是,它现在给我带来了自动布局的问题

问题:这是在IB中复制这种效果的一种方式吗?
换句话说,如何将UIImage放置在IB中tableView的第一个单元格(仅)上方,以便为Autolayout创建约束。如果我不能,我如何通过编程复制自动布局的效果


非常感谢您的帮助,谢谢

在IB中,您可以创建两个原型单元,一个用于带有齿轮按钮的第一个单元,另一个用于单元的其余部分

cellforrowatinexpath
中,对
indexPath.row
设置一个条件,以知道返回哪个单元格

问题是我不熟悉斯威夫特。 您必须创建两个具有不同标识符的原型单元。 在cellForRowAtIndexPath方法中:

UITableViewCell *cell;
if(indexPath.row == 0)
    cell = [tableView dequeueReusableCellWithIdentifier:@"firstCell" forIndexPath:indexPath];
else
    cell = [tableView dequeueReusableCellWithIdentifier:@"otherCell" forIndexPath:indexPath];

希望有帮助,如果需要更多帮助,请告诉我。

从对象库中拖动一个视图,将其放置在表视图控制器的顶部,并将其设置为标题视图

好的,这可能行得通,如果你能解释多一点,那就太好了,例如,我使用不同的标识符吗?我如何计算行数,只需添加1?谢谢你的建议。我尝试了这个方法,但无法更改对象的X,Y位置。你必须先放置视图,然后再放置控件。我添加了一个屏幕截图。啊,好的-非常感谢-这正是我要找的。