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

+0

Что вы имеете в виду «сверху раздела»? что ты уже испробовал? –

ответ

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

+0

Добро пожаловать. – warchimede

0

Используйте метод bringSubviewToFront: метод и напишите следующий код в методе viewDidLoad.

[self.view bringSubviewToFront:yourButton]; 

Я думаю, это будет полезно для вас.

+0

Я отредактировал. Извините за мою ошибку. Заранее спасибо. – jackiviet

Смежные вопросы