Почему detailTextLabel не виден?
detailTextLabel
не виден (код ниже). Ты можешь сказать мне, почему?
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell...
NSString *cellValue = [myListArray objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
cell.detailTextLabel.text = @"Hello "; // This is not visible
cell.image = [myListArrayImages objectAtIndex:indexPath.row];
return cell;
}
4 ответа
detailTextLabel
не отображается для cells
с UITableViewCellStyleDefault
стиль. init
UITableViewCell
с UITableViewCellStyleSubtitle
вместо этого и вы должны увидеть свой detailTextLabel
,
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
Swift 5
Вы можете включить это внутри метода cellForRowAt
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell = UITableViewCell(style: .subtitle, reuseIdentifier: "cell")
cell.textLabel?.text = qus[indexPath.row]
cell.detailTextLabel?.text = ans[indexPath.row]
return cell
}
Чтобы решить ее программно:
let cell = UITableViewCell(style: .subtitle, reuseIdentifier: "identifier")
Я использовал это, и это сработало для меня:
// programming mark ----- ----- ---- ----- ----- ---- ----- ----- ----
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let CellIdentifier: String = "CellIdentifier"
var cell = tableView.dequeueReusableCellWithIdentifier(CellIdentifier) as? UITableViewCell
if cell == nil {
cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: CellIdentifier)
}
cell!.textLabel!.text = "Title"
cell!.detailTextLabel!.text = "Value"
return cell!
}
Я просто хочу упомянуть, что формулировка в ссылке на класс UITableViewCell может немного запутать эту проблему:
(После описания каждого типа клеток)
" Обсуждение Во всех этих стилях ячеек доступ к большему количеству текстовых меток осуществляется через свойство textLabel, а к меньшему - через свойство detailTextLabel".
Может показаться, что все типы ячеек включают в себя detailTextLabel, но если вы внимательно прочитаете их, то это только тип по умолчанию, у которого нет detailTextLabel.