我有一个UITableViewCell的子类,我是在Interface Builder中创建的。
当我加载它时,我在单元格中添加了一个子视图,虽然它是单元格底部的1.0f厚灰色分隔符。
然而,每当我向下滚动并且带有灰色条的单元格离开视图,然后我向上滚动时,灰色条现在消失了。如果我使用重新加载表的pull-to-refresh方法刷新页面,它会重新出现。
以下是添加子视图的代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
//Make a cell
ZSWTaskCellTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ZSWTaskCellTableViewCell" forIndexPath:indexPath];
UIView *bottomSeperator = [[UIView alloc] initWithFrame:CGRectMake(60, cell.frame.size.height, cell.frame.size.width-60, 1)];
bottomSeperator.backgroundColor = [UIColor lightGrayColor];
[cell addSubview:bottomSeperator];
cell.taskLabel.font = [UIFont fontWithName:@"Avenir" size:18];
cell.categoryLabel.font = [UIFont fontWithName:@"Avenir-Medium" size:14];
cell.categoryLabel.textColor = [UIColor grayColor];
答案 0 :(得分:0)
当您使用子类时,您应该在单元类本身中设置它的子视图。
根据其他因素,您应该覆盖initWithCoder:
和/或layoutSubviews
。 preparForReuse
可能也值得一提。
请注意,将重用单元格,并为每次重用添加操作员视图。根据行数和用户的滚动,会有很多视图。
将分隔符视图作为属性添加到您的单元子类中,并在单元初始化期间仅创建一次。
答案 1 :(得分:0)
您使用 heightForRowAtIndexPath 方法吗?如果是,那么在我的情况下增加它的高度解决问题它让我发疯。我正在尝试类似的修复