tableView的contentView偏移

在做一个横屏的浮层聊天功能的时候,发现在Cell上设置子控件不能左对齐。

tableView的创建和添加,因为是要做消息往上“顶”的效果,所以将tableView旋转180度 CGAffineTransformMakeRotation(M_PI)

    self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    self.tableView.separatorStyle = UITableViewCellSelectionStyleNone;
    self.tableView.showsVerticalScrollIndicator = NO;
    self.tableView.backgroundColor = [UIColor clearColor];
    self.tableView.transform = CGAffineTransformMakeRotation(M_PI);
    [self.view insertSubview:self.tableView atIndex:0];

cell也旋转了180度

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *cellIdentifier = @"VHChatViewController_VHChatTableViewCell";
    VHChatTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (!cell) {
        cell = [[VHChatTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
        cell.backgroundColor = [UIColor brownColor];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.transform = CGAffineTransformMakeRotation(M_PI);
    }
    [cell setModel:self.dataSource[indexPath.row]];
    return cell;
}

cell中布局

- (void)layoutSubviews {
    [super layoutSubviews];
    

    [self.bgView mas_updateConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(0);
        make.right.mas_equalTo(0);
        make.top.mas_equalTo(5);
        make.bottom.mas_equalTo(-5);
    }];
    [self.hearderBtn mas_updateConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(10);
        make.top.mas_equalTo(6);
        make.width.mas_equalTo(20);
        make.height.mas_equalTo(20);
    }];
    [self.emoLabel mas_updateConstraints:^(MASConstraintMaker *make) {
        make.left.equalTo(self.hearderBtn.mas_right).offset(10);
        make.top.equalTo(self.hearderBtn.mas_top);
        make.right.mas_equalTo(-12);
        make.height.equalTo(self.bgView.mas_height);
    }];
}

发现这个bgView的x坐标并不是0。

后来发现将bgView添加在self上就不会出这个问题,添加在self.contentView上就会出这个问题。

给self.contentView设置了红色,看了下图层:

在这里插入图片描述
发现contentView的x坐标发生了偏移,bgView在contentView上,所以也偏移了。

添加在self上就好了。

为什么cell的contentView会发生偏移呢,可能是因为将tableView旋转,cell旋转导致的吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Morris_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值