子视图在滚动时在UITableViewCell子类上消失

时间:2014-07-21 00:56:13

标签: ios objective-c uitableview

我有一个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];

2 个答案:

答案 0 :(得分:0)

当您使用子类时,您应该在单元类本身中设置它的子视图。

根据其他因素,您应该覆盖initWithCoder:和/或layoutSubviewspreparForReuse可能也值得一提。

请注意,将重用单元格,并为每次重用添加操作员视图。根据行数和用户的滚动,会有很多视图。

将分隔符视图作为属性添加到您的单元子类中,并在单元初始化期间仅创建一次。

答案 1 :(得分:0)

您使用 heightForRowAtIndexPath 方法吗?如果是,那么在我的情况下增加它的高度解决问题它让我发疯。我正在尝试类似的修复