как создать несколько меток в ячейке таблицы без создания пользовательского табличного представления iphone

#iphone #cocoa-touch #uitableview

#iPhone #cocoa-touch #uitableview

Вопрос:

у меня не пользовательский вид таблицы, который я имею в виду, что я использую cellForRowAtIndexPath. Я хочу, чтобы в моей ячейке было 2 метки, одна для заголовка, а другая для даты. Я пытался использовать этот код, который не работает:

 CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0f, 109.0f); 

    UIView* view = cell.contentView;
    UILabel* labelTitle = [[UILabel alloc] initWithFrame:myImageRect];
    UILabel* labelDate = [[UILabel alloc] initWithFrame:myImageRect];

    [cell addSubview:labelTitle];
    [cell addSubview:labelDate];

    cell.labelDate.text = @"title";
    cell.labelTitle.text = @"date";
  

Я получаю сообщение об ошибке: Property 'labelDate' not found on object of type 'UITableViewCell *'

Похоже, что ячейка не распознает мои метки. Можно ли это каким-то образом сделать?

Заранее спасибо.

Ответ №1:

Вы должны использовать методы делегирования представления таблицы как;

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

NSString *detailField_Name = [[NSString alloc] init];

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}

cell.textLabel.text = @"title";
cell.detailTextLabel.text = @"date";

return cell;

}
  

Ответ №2:

попробуйте

  [cell.contentView addSubview:title];
  

Ответ №3:

Вот хороший пример от Apple, как создать несколько пользовательских ячеек.

Ответ №4:

используйте

[cell.contentView добавляет SUBVIEW:title];

вместо

[cell addSubview:labelTitle];

и

labelDate.text = @»title»;

вместо

ячейка.labelDate.text = @»title»;

Ответ №5:

Вы можете добавить несколько меток следующим образом:

UILabel *lblTaskTitle = [[UILabel alloc] initWithFrame:CGRectMake(45.0, 5, 100.0, 35.0)];

     [lblTaskTitle setFont:[UIFont fontWithName:@"Helvetica" size:16.0]];        
    [lblTaskTitle setTextColor:[UIColor whiteColor]];
    [lblTaskTitle setBackgroundColor:[UIColor clearColor]];
    lblTaskTitle.text = oTaskType.taskTypeTitle;
    [cell addSubview:lblTaskTitle];
  

UILabel *lblTaskDetail = [[UILabel alloc] initWithFrame:CGRectMake(45.0, 5, 140.0, 35.0)];

     [lblTaskDetail setFont:[UIFont fontWithName:@"Helvetica" size:16.0]];       
    [lblTaskDetail setTextColor:[UIColor whiteColor]];
    [lblTaskDetail setBackgroundColor:[UIColor clearColor]];
    lblTaskDetail.text = oTaskType.taskTypeTitle;
    [cell addSubview:lblTaskDetail];
  

Дайте мне знать в случае возникновения каких-либо трудностей.