我有一个子类UITableViewCell
,我正在设置imageView
。我希望将其保持在60x60,因此我在我的子类的frame
方法中设置了bounds
和layoutSubviews
:
- (void)layoutSubviews {
[super layoutSubviews];
self.imageView.bounds = CGRectMake(10,10,60,60);
self.imageView.frame = CGRectMake(10,10,60,60);
self.imageView.clipsToBounds = YES;
}//end
这很有效,直到我的图像超出imageView
的范围:
因此,我确保将clipsToBounds
设置为YES:
但正如你所看到的那样,textLabel
和detailTextLabel
仍在缩进,即使我不认为它应该是。
如何解决此问题?
答案 0 :(得分:0)
您可以在textLabel
实施中设置-layoutSubviews
的位置:
- (void)layoutSubviews {
[super layoutSubviews];
self.imageView.bounds = CGRectMake(10,10,60,60);
self.imageView.frame = CGRectMake(10,10,60,60);
self.imageView.clipsToBounds = YES;
CGFloat x = 10.0 + 60.0 + 10.0; // Padding, image width, and padding.
CGRect frame = self.textLabel.frame;
frame.origin.x = x;
self.textLabel.frame = frame;
frame = self.detailTextLabel.frame;
frame.origin.x = x;
self.detailTextLabel.frame = frame;
} //end
您可能想要调整x
。
希望这有帮助。
答案 1 :(得分:0)
我认为我使用的更好的解决方案是不使用imageView
中的构建,而是使用自己的构建。这样做效果更好。