每次表重新加载时,自定义UITableViewCell中的UILabel都会向上移动

时间:2014-11-17 01:39:56

标签: ios objective-c uitableview

我已经设置了UILabels的定位,如下所示:

- (void) layoutSubviews {
    [super layoutSubviews];
    CGRect cvf = self.contentView.frame;
    self.imageView.frame = CGRectMake(0.0,
                                      0.0,
                                      cvf.size.height-1,
                                      cvf.size.height-1);
    self.imageView.contentMode = UIViewContentModeScaleAspectFit;

    CGRect frame = CGRectMake(cvf.size.height + 5,
                              self.textLabel.frame.origin.y-10,
                              cvf.size.width - cvf.size.height - 2*1,
                              self.textLabel.frame.size.height);
    self.textLabel.frame = frame;

    frame = CGRectMake(cvf.size.height + 5,
                       self.detailTextLabel.frame.origin.y-8,
                       cvf.size.width - cvf.size.height - 2*1,
                       self.detailTextLabel.frame.size.height);
    self.detailTextLabel.frame = frame;

    frame = CGRectMake(cvf.size.height + 5,
                       self.bestMatchLabel.frame.origin.y-4,
                       cvf.size.width - cvf.size.height - 2*1,
                       self.bestMatchLabel.frame.size.height);
    self.bestMatchLabel.frame = frame;

}

出于某种原因,在重新加载UITableView时,bestMatchLabel会向上移动几个像素,因此它看起来如下图所示。每次我重新加载它,它会越来越多。我感觉到Y定位的某些因素导致它将当前位置与之前的位置联系起来。我对么? enter image description here

1 个答案:

答案 0 :(得分:1)

很明显代码:
self.textLabel.frame.origin.y-10, self.detailTextLabel.frame.origin.y-8 self.bestMatchLabel.frame.origin.y-4,
使y改变每个负载。您必须在每个布局中设置修复y。

相关问题