2010-07-31 6 views
1

У меня есть экземпляр UITableView с двумя разделами, первый с одной строкой, второй - до восьми строк. Вторая секция часто отключается от экрана, и пользователь может прокрутить весь вид таблицы вниз, чтобы увидеть их по своему усмотрению.Прокрутка раздела в UITableView

Однако я бы хотел, чтобы первый раздел всегда оставался в поле зрения, потому что его информация полезна. Я бы хотел, чтобы только вторая секция была прокручиваемой, первая секция оставалась неподвижной и в поле зрения.

Что вы предлагаете?

ответ

2

Вы не можете прокручивать каждую секцию отдельно. Однако согласно вашему описанию звучит так, как будто ваш первый раздел не является секцией и должен быть заголовком для второго раздела. Когда вы создаете заголовок для раздела, заголовок всегда останется видимым. Для создания настраиваемого раздела просмотра вам необходимо реализовать viewForHeaderInSection и heightForHeaderInSection, определенные в протоколе UITableViewDelegate.

Вот пример

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section 
{ 
     return 60; 
} 


- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
     UIView *myHeader = [[[UIView alloc] initWithFrame:CGRectMake(0,0,60,320)] autorelease]; 
     myHeader.backgroundColor = [UIColor redColor]; 
     UILabel *myLabel = [[[UILabel alloc] initWithFrame:CGRectMake(0,0,30,150)] autorelease]; 
     myLabel.text = @"Testing header view"; 
     [myHeader addSubView:myLabel]; 
     return myHeader; 

} 

Таким образом, вы можете создать представление таблицы с одной секцией и заголовок данного раздела, который будет оставаться в виду, даже если таблица прокручивают.

+0

BTW Надеюсь, мой код работает, я написал его прямо здесь, а не в xcode. –

+0

ОК, сделайте верхнюю часть части заголовка второй секции ... Это может иметь дополнительные преимущества. Спасибо за великолепный пост! – SK9

1

Боюсь, что вы не можете сделать это с помощью одного стола. Все разделы будут прокручиваться. Однако, если первый раздел всегда содержит одну строку, и вы хотите сохранить ее на месте, то почему вы должны хранить ее в таблице? Вы можете переместить это из таблицы.

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