我已经设置了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定位的某些因素导致它将当前位置与之前的位置联系起来。我对么?
答案 0 :(得分:1)
很明显代码:
self.textLabel.frame.origin.y-10,
self.detailTextLabel.frame.origin.y-8
self.bestMatchLabel.frame.origin.y-4,
使y改变每个负载。您必须在每个布局中设置修复y。