Можно ли статически создавать данные для UITableView? - PullRequest
1 голос
/ 06 июня 2011

Можно ли установить UITableView / UITableViewController со статическими данными?Или всегда требуется заполнить протокол UITableViewDataSource и вернуть отдельные записи и создать ячейки по требованию?

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

1 Ответ

3 голосов
/ 06 июня 2011

Под «статическими данными» вы подразумеваете жесткое кодирование, а не источник данных?

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

Например:

// How many sections in the table? Hard coded to 1 here
- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
  return 1;
}

// How many rows in the table? Hard coded to 2 here
- (NSInteger) tableView: (UITableView *) tableView numberOfRowsInSection:(NSInteger)section {
  return 2;
}

// Method for returning data from anywhere, even hard coded
// Notice how we use row and section, these tell us which cell in the table we are returning
- (UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
  NSInteger row = [indexPath row];
  NSInteger section = [indexPath section];

  // Dequeue a cell using a common ID string of your choosing
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myCellID"];

  // Return cells with data/labels/pretty colors here
  if (row == 0)
  {
    cell.textLabel.text = @"I can haz cheezburger";
  }
  else if (row == 1)
  {
    cell.textLabel.text = @"I hate lol catz";
  }

  // Pretty em up here if you like
  cell.selectionStyle = UITableViewCellSelectionStyleGray;
  cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
  return cell;  
}

Это довольно просто, когда вы знаете способ Какао, но это не "просто".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...