Пользовательский UITableView (UIView + Ячейки) - PullRequest
1 голос
/ 23 декабря 2009

Я уже создал UIViewController, где я отображаю текст, изображение и другую информацию. Теперь я хочу иметь возможность поместить некоторые ячейки (то есть табличное представление) в это представление. Каков наилучший способ сделать это?

Должен ли я создать UITableView и создать заголовок с моей картинкой, текстом .. или другой возможностью

С наилучшими пожеланиями,

Ответы [ 3 ]

2 голосов
/ 23 декабря 2009

Хорошо, я нахожу решение.

Я создал простой UITableView. Внутри этого tableView я создал функцию:


-(void)setHeaderView {

    self.myHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 300)];
    self.tableView.tableHeaderView = self.myHeaderView;

}

А в ViewWillAppear мне просто нужно вызвать эту функцию. Поэтому, когда я запускаю приложение, оно будет отображать View и под View my TableView. Я не знал, что так легко.

С наилучшими пожеланиями,

1 голос
/ 23 декабря 2009

В ответ на ваш пост о решении: Не уверен, но разве вы не должны выпускать myHeaderView в конце setHeaderView()?

0 голосов
/ 23 декабря 2009

Это зависит от того, что вы хотите, чтобы UITableViewCells выглядел. Если вам нужна только одна строка текста, нет необходимости создавать пользовательскую ячейку, а вместо этого создавать ее в коде.

-(UITableViewCell*) tableView: (UITableView*) tableView cellForRowAtIndexPath:(NSIndexPath*) indexPath {

   UITableViewCell *cell = [[UITableViewCell alloc] dequeueReusableCellWithIdentifier:@"someId"];

   if (cell == nil) {
      cell = [[[UITableViewCell alloc] 
                 initWithFrame:CGRectZero 
                 reuseIdentifier:someIdentifier] autorelease];
     ...
   }

Однако, если вам нужна фотография вместе с текстом, будет проще создать файл UITableViewCell.xib, добавить UILabel, UIImageViews и т. Д., А затем при создании ячейки в методе, показанном выше, заменить

cell = [[[UITableViewCell alloc] initWithFrame ...

с

NSArray *nib = [[NSBundle] mainBundle] loadNibNamed:@"YourNibCustomCellName" owner:self options:nil];
cell = [nib objectAtIndex:0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...