2013-03-02 72 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