detailTextLabel
is not visible (code below). Can you tell me why?
// 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;
}
The detailTextLabel
is not displayed for cells
with the UITableViewCellStyleDefault
style. init
the UITableViewCell
with UITableViewCellStyleSubtitle
instead and you should see your detailTextLabel
.
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
I just want to mention that the wording in the UITableViewCell class reference can be a little bit confusing on this issue:
(After describing each cell type)
"Discussion In all these cell styles, the larger of the text labels is accessed via the textLabel property and the smaller via the detailTextLabel property."
It might seem that it's saying all of the cell types include a detailTextLabel, but if you carefully read through them it's only the default type that does not have a detailTextLabel.
I have used this and it worked for me:
// 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!
}
In order to solve it programmatically:
let cell = UITableViewCell(style: .subtitle, reuseIdentifier: "identifier")
来源:https://stackoverflow.com/questions/5190648/why-is-detailtextlabel-not-visible