2013-03-02 77 views
0

我打算有一个视图控制器,一个表视图(3个部分)和3个按钮。我不知道是否可以将按钮1放置在桌面视图和桌面视图顶部(正好在第1部分顶部),按钮2在第2部分顶部,按钮3在第3部分顶部将UIButton放在UIView的顶部

而且我还希望当人们向下滚动时,按钮1仍然在顶部,直到它遇到按钮2→按钮2将在顶部,当它与按钮3相遇时,按钮3将在顶部。

你能帮我做我想做的吗?

+2

修复呢?我没有看到任何半工作代码。 – 2013-03-02 14:01:44

+0

我编辑过。先谢谢你。 – jackiviet 2013-03-02 14:36:04

+0

你是什么意思与“顶部”?你试过什么了? – 2013-03-02 14:54:39

回答

2

下面是一个可用于您的目的的示例。在你UITableViewController,这也应该是你的UITableViewDelegate,执行以下代码:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UIButton *button = nil; 
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0,self.view.frame.size.width, HEADER_HEIGHT)]; 
    switch (section) { 
     case 0: 
      button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, BUTTON1_WIDTH, HEADER_HEIGHT)]; 
      [button addTarget:self action:@selector(SELECTOR1) forControlEvents:UIControlEventTouchUpInside]; 
      // do some more things 
      break; 
     case 1: 
      button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, BUTTON2_WIDTH, HEADER_HEIGHT)]; 
      [button addTarget:self action:@selector(SELECTOR2) forControlEvents:UIControlEventTouchUpInside]; 
      // do some more things 
      break; 
     case 2: 
      button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, BUTTON3_WIDTH, HEADER_HEIGHT)]; 
      [button addTarget:self action:@selector(SELECTOR3) forControlEvents:UIControlEventTouchUpInside]; 
      // do some more things 
      break; 
     default: 
      // do default things 
      break; 
    } 

    [headerView addSubview:button]; 
    return headerView; 
} 

而且不要忘记实现这个:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
    return HEADER_HEIGHT; 
} 
+0

非常感谢。如果我卡住了,我会尝试你的解决方案并回来。 – jackiviet 2013-03-02 16:26:50

+0

不客气。 – warchimede 2013-03-02 16:35:25

0

使用bringSubviewToFront:方法,并在viewDidLoad方法中写入以下代码。

[self.view bringSubviewToFront:yourButton]; 

我认为这会对您有所帮助。

+0

我编辑过。对不起,我错了。先谢谢你。 – jackiviet 2013-03-02 14:36:48