【发布时间】:2015-12-29 02:53:50
【问题描述】:
我有一个有 2 行的 tableview。在第一行中,我有一个 UIView,我将在其上添加一个自定义视图。我将自定义视图作为 XIB 进行了添加,如下所示,
Layout6View *lookLayout6 = [[Layout6View alloc] initWithFrame:CGRectMake(0, 0,cell.mainView.frame.size.width, cell.mainView.frame.size.height)];
[cell.mainView addSubview:lookLayout6];
我的Layout6View 看起来像,
@implementation KCTLLookLayout6View
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self = [[[NSBundle mainBundle] loadNibNamed:@"Layout6"
owner:self
options:nil] lastObject];
self.frame = frame;
}
return self;
}
-(void)layoutSubviews{
[super layoutSubviews];
for (UIView *view in self.subviews) {
if (view == self.imageTopRightCorner) {
view.frame = CGRectOffset(CGRectMake(0, 0, /*(self.frame.size.width/2)-20, (self.frame.size.height/3)*/30,30), 0, 0);
}
}
}
@end
当我运行它时,自定义视图没有调整大小。它遍布整个表格视图(不仅在单元格内部)。
有没有办法解决这个问题?
【问题讨论】:
-
在 cell.contentView 上添加子视图,或者如果您使用故事板进行设计,请直接添加。
-
如果可能的话,更喜欢故事板上的原型单元。每当您在单元格中使用“添加子视图”时,每当单元格重用时,它将再次创建并重叠多次重用单元格。因此,您必须通过迭代子视图来删除该视图,然后再次执行子视图。
标签: ios objective-c iphone uitableview uiview