当前位置: 首页 > 知识库问答 >
问题:

Scrollview显示在多个tableview单元格中

富辰阳
2023-03-14

开发了一个应用程序。我在那份申请中有一个问题
我想将scrollview添加到tableview单元格中。我使用下面的代码创建了tableview单元格。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier = @"Cell";
    ExistingCasesCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[ExistingCasesCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
//Adding SwipeGestures to a cell
        UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
        [swipeRight setDirection:UISwipeGestureRecognizerDirectionRight];
        [cell addGestureRecognizer:swipeRight];
        swipeRight=nil;

        UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
        [swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
        [cell addGestureRecognizer:swipeLeft];
        swipeLeft=nil;
    }
    cell.buttonEdit.tag=tagForButtonCustomCell*indexPath.row+0;
    [cell.buttonEdit addTarget:self action:@selector(btnOptionsClicked:) forControlEvents:UIControlEventTouchUpInside];
    cell.buttonShare.tag=tagForButtonCustomCell*indexPath.row+1;
    [cell.buttonShare addTarget:self action:@selector(btnOptionsClicked:) forControlEvents:UIControlEventTouchUpInside];
    cell.buttonAdd.tag=tagForButtonCustomCell*indexPath.row+2;
    [cell.buttonAdd addTarget:self action:@selector(btnOptionsClicked:) forControlEvents:UIControlEventTouchUpInside];
    cell.buttonDelete.tag=tagForButtonCustomCell*indexPath.row+3;
    [cell.buttonDelete addTarget:self action:@selector(btnOptionsClicked:) forControlEvents:UIControlEventTouchUpInside];
    Item *itemObject = [arrSavedDocuments objectAtIndex:indexPath.row];
    UILabel *labelDocumentName=(UILabel *)[cell.contentView viewWithTag:tagForLabelDocument];
    labelDocumentName.text=itemObject.itemTypeName;
    UILabel *labelNumOfPages=(UILabel *)[cell.contentView viewWithTag:tagForLabelNumberOfPages];
    labelNumOfPages.text=[NSString stringWithFormat:@"%d", [[itemObject.itemToPage allObjects]count]];
    UILabel *labelDate=(UILabel *)[cell.contentView viewWithTag:tagForLabelDate];
    labelDate.text=[self parseDateString:itemObject.itemCreatedTimeStamp];
    return cell;
}

这里ExistingCasesCustomCell是我的自定义单元格类
在现有casescustomcell的init方法中,我添加了滚动视图,其中子视图为4个按钮(buttonEdit、buttonShare、ButtonAnd和buttonDelete)。最初,scrollview处于隐藏位置
我的要求是每当用户在单元格上滑动时,scrollview都会显示出来。每当用户在单元格上滑动时,我就会显示滚动视图
但我的问题是,每当我滚动tableview时,其他单元格中也会显示滚动视图。我如何解决这个问题

提前谢谢,
兰巴布

共有1个答案

裴韬
2023-03-14

问题的出现是因为单元格在UITableView中被回收。转到您的ExistingCasesCustomCell类,覆盖prepareforeuse方法并隐藏滚动视图。

-(void) prepareForReuse {
    self.scrollView.hidden = YES;
}
 类似资料:
  • 问题内容: 我想显示一个从数据库到表单元格的段落。 结果是一个大的1行,而忽略了它在数据库中的组织方式。例如忽略“输入”(换行) 我想完全按照它在数据库中的编写方式来显示它。 例如,如果段落保存如下: 我希望它完全像这样显示,而不是: 问题答案: 您想使用应用于适当的CSS 。为此,请对所有表单元格执行此操作,例如: 另外,如果您可以更改标记,则可以在内容周围使用标签。默认情况下,Web浏览器使用

  • 问题内容: 我正在寻找一种方法来在表格单元格中显示动画进度指示器(动画GIF,通过Java2D渲染的旋转轮等,此处没有首选项),直到计算或检索出最终显示的值为止。 到目前为止,我只是在尚未准备好加速显示的每个单元格中放置了一个静态的“待处理…”文本。当数据从后台线程到达时,我将其放入适当的单元格中并在表上调用repaint。 使用静态标签或图像可以很好地工作,但是由于单元格渲染仅将其用作橡皮图章,

  • 我想这可能是图像后的行和列的问题,但是我已经尝试了一些方法,但没有成功。非常感谢任何帮助。谢谢

  • 问题内容: 我有此代码从如何突出显示jtable中的多个单元格: 但是,当我用它突出显示一个单元格时,它会执行错误的操作,就像丢失整个数据一样。Iam是Java Swing的新手。请帮助使单元格在按钮按下动作事件中突出显示。 更新:添加我的示例代码: 我想要的是单击按钮,我只想突出显示单元格编号1(Row1-Column1)。 问题答案: 我使用此类来设置JTables的样式 创建此类的实例,并将

  • 我一直试图通过UIViewController将tableviewcell链接到UIView中的tableview。虽然tableview在那里,但我的自定义tableviewcell没有加载。日志显示单元格已初始化并填充 下面是我在viewcontroller中使用的代码,而tableview已经在UIView中设置好了 ViewController.m

  • 我正在使用顺风CSS,并试图建立一个网格,使某些单元格内容跨越多个单元格,而其他项目留在单个单元格。在下面的代码中,我试图展示我正在尝试完成的事情。我知道我的col-span-2班什么也没做,但我把它放在那里是为了表明我希望我能做什么。我想让所有的单元格都是相同的宽度(我只想让一些单元格内容跨越分隔线)。我需要某种覆盖逻辑吗? 感谢任何帮助。 谢谢!