添加到UITableViewController网络的按钮在tableView前面设置

时间:2012-09-17 13:42:45

标签: iphone uitableview

我正在以编程方式向UITableViewController添加一个按钮,如下所示:

-(void)createFlipButton
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeInfoDark];
    button.frame = CGRectMake(282, 372, 18, 19);
    [button addTarget:self action:@selector(flipView) forControlEvents:UIControlEventTouchDown];
    [self.view addSubview:button];
    [self.view bringSubviewToFront:button];
}

但是它会陷入占据button.frame空间的单元格中。为什么[self.view bringSubviewToFront:button]没有工作?

此外,[self.tableView bringSubviewToFront:button]也不起作用。

5 个答案:

答案 0 :(得分:1)

猜测你真正想要的是一个浮动视图,即一个在桌面视图滚动时不移动的视图。按钮看起来粘在你的单元格上的原因是整个表都在滚动视图中,所以当内容移动时,按钮也会这样做。

要做的是在桌子滚动时调整添加的视图的位置。只需实现委托方法:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
     CGPoint buttonOrigin = CGPointMake(200,50);
     self.button.frame = CGRectMake(buttonOrigin.x, buttonOrigin.y + self.tableView.bounds.origin.y, self.button.frame.size.width, self.button.frame.size.height);
}

您需要存储按钮的参考,以便您可以在此处访问它,也可以将按钮的位置放入ivar中。

如果您有权访问WWDC 2011视频,您将在第125课中找到技巧。

答案 1 :(得分:0)

你可以创建一个透明的UIView;将您的按钮添加到该UIView,然后将该UIView添加到您拥有的视图层次结构中。 这应该按照你的要求工作(按钮不是表格视图的一部分)。 如果需要有关示例代码的任何帮助,请在下面添加注释。

答案 2 :(得分:0)

每当我想在同一个视图中使用Table View和其他UI项时,我都会使用UIViewController。此视图控制器符合UITableViewDelegate和UITableViewDataSource。实现了UITableView委托和DataSource方法,因此该视图控制器也可用作表视图控制器。我使用IB或故事板来建立联系。但是,如果您想以编程方式创建所有内容,这也应该有效。

在您的情况下,如果您希望UIButton与表视图分开,则使用如上所述的UIViewController是其中一个选项。

答案 3 :(得分:-1)

您应该在tableHeaderView

中添加按钮
-(void)createFlipButton
{
    UIButton *button = [UIButton buttonWithType:UIButtonTypeInfoDark];
    button.frame = CGRectMake(10, 10, 18, 19);
    [button addTarget:self action:@selector(flipView) forControlEvents:UIControlEventTouchDown];
    self.tableView.tableHeaderView = button
    self.tableView.delegate = self;
    [self.tableView reloadData];
}



and implement the following UITableView Delegate
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section   {

return 44;/// sample
}

答案 4 :(得分:-1)

按钮添加 UItableViewCell

[cell.contentView addSubview:Button];