#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];
Дайте мне знать в случае возникновения каких-либо трудностей.