选择单元格后向左移动的表格单元格内容(标题)

时间:2015-03-23 09:01:50

标签: ios iphone

enter image description here

在tableview单元格中,我将单元格标题文本对齐设置为中心,工作正常,但选择单元格后,标题左对齐。此问题仅适用于iOS 7.0。

修改

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
  BaseListCell *cell = [self.listTableView dequeueReusableCellWithIdentifier:listCellIdentifier forIndexPath:indexPath];
  cell.textLabel.text = _listArray[indexPath.row];
  cell.textLabel.userInteractionEnabled = NO;
        return cell;
}

在BaseListCell.m

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    self = [super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier];
    if (self) {
        self.textLabel.textColor =[UIColor grayColor];
        self.textLabel.textAlignment = NSTextAlignmentCenter;
        self.textLabel.font = [UIFont mediumFontWithSize:16.f];
        self.textLabel.translatesAutoresizingMaskIntoConstraints = NO;
        NSLayoutConstraint *labelHCN = [NSLayoutConstraint constraintWithItem:self.textLabel attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterX multiplier:1.f constant:0];
        [self.contentView addConstraint:labelHCN];
        NSLayoutConstraint *labelVCN = [NSLayoutConstraint constraintWithItem:self.textLabel attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterY multiplier:1.f constant:0];
        [self.contentView addConstraint:labelVCN];
    }
    return self;
}

1 个答案:

答案 0 :(得分:1)

这是因为您没有正确设置自动布局。 你解决了问题吗? 为什么你真的需要以下

self.textLabel.translatesAutoresizingMaskIntoConstraints = NO;
NSLayoutConstraint *labelHCN = [NSLayoutConstraint constraintWithItem:self.textLabel attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterX multiplier:1.f constant:0];
[self.contentView addConstraint:labelHCN];
NSLayoutConstraint *labelVCN = [NSLayoutConstraint constraintWithItem:self.textLabel attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeCenterY multiplier:1.f constant:0];
[self.contentView addConstraint:labelVCN];

我因为这段代码而遇到麻烦。你能尝试排除吗

您最好将文本字段声明为以下内容

在BaseListCell.m

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
    self = [super initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier];
    if (self) {

    }
    return self;
}



- (void)awakeFromNib {
   self.textLabel.textColor =[UIColor grayColor] 
   self.textLabel.textAlignment = NSTextAlignmentCenter;
   self.textLabel.font = [UIFont mediumFontWithSize:16.f];
  }

首先启用使用自动布局使用大小类,如下所示在表格视图和表格视图单元格中首先执行此操作。并告诉我您的问题

enter image description here

如果要将文本vew或标签等放在表格视图的右侧,请点击它的图钉。enter image description here

然后选择约束left,right,top和only height。 enter image description here

点击添加4个约束enter image description here

您也可以查看此内容:

iOS - Custom table cell not full width of UITableView