我试图让细胞细节文本居中。
我已经阅读了各种各样的帖子,但他们似乎都在谈论旧版本的IOS。我想我尝试了每一个帖子的组合,但没有运气使它成功。
[[cell detailTextLabel] setTextAlignment:UITextAlignmentCenter];
我从willDisplayCell尝试了这个,并且在下面的代码中也没有用。注意2我在两种方法中尝试过的方法。
有没有人知道这是否有效或者我应该创建自己的中心功能(方法)吗?
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:18.0];
cell.detailTextLabel.font = [UIFont systemFontOfSize:16];
NSMutableDictionary *curRow = [myData objectAtIndex:indexPath.row];
cell.textLabel.text = [curRow objectForKey:@"Description"];
cell.detailTextLabel.text = [curRow objectForKey:@"Stats"];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.detailTextLabel.textAlignment = UITextAlignmentCenter;
答案 0 :(得分:2)
如果对齐有问题,那么您可以创建自定义标签并将子视图添加到单元格。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
UILabel *label;
UILabel *detailLabel;
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
label = [[[UILabel alloc] initWithFrame:CGRectMake(55, 4, 260, 20)] autorelease];
//make Your alignments to this label
label.font = [UIFont boldSystemFontOfSize:15.0];
label.tag=25;
//make Your alignments to this detail label
detailLabel = [[[UILabel alloc] initWithFrame:CGRectMake(55, 25, 260, 15)] autorelease];
detailLabel.font = [UIFont systemFontOfSize:13.0];
detailLabel.tag=30;
[cell.contentView addSubview:label];
[cell.contentView addSubview:detailLabel];
}
else
{
label = (UILabel *)[cell.contentView viewWithTag:25];
detailLabel = (UILabel *)[cell.contentView viewWithTag:30];
}
label.text =[curRow objectForKey:@"Description"];
detailLabel.text=[curRow objectForKey:@"Stats"];
return cell;
}
答案 1 :(得分:2)
或者,如果您希望在使用自动垂直中心时detailTextLabel
居中(textLabel将垂直居中,如果detailTextLabel
为空),则需要覆盖- (void) layoutSubviews
否则标签的大小将适合内容,因此textAlignment = UITextAlignmentCenter
将无效。
- (void) layoutSubviews
{
[super layoutSubviews];
self.textLabel.frame = CGRectMake(0, self.textLabel.frame.origin.y, self.frame.size.width, self.textLabel.frame.size.height);
self.detailTextLabel.frame = CGRectMake(0, self.detailTextLabel.frame.origin.y, self.frame.size.width, self.detailTextLabel.frame.size.height);
}