- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个类似于 bbc 应用程序的 iOS 应用程序- 我有一个表格 View ,有两个部分- 第一部分包含包含 ScrollView 宽图像的单元格- 第二部分包含可扩展单元格,其中包含 ScrollView 所做的图像所以问题是当我使用 dequereusable 时,它显示出奇怪的行为,例如当表格中最底部的单元格展开时,第一个单元格中的第一个单元格被清除等等所以我刚刚停止使用队列,一切都开始正常工作但现在,当我在滚动后添加图像时,不在 View 中的单元格会刷新并且其加载时间较长
所以请指导我如何在代码中明智地使用队列如下面所描述的- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *CellIdentifier=@"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell== nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"hai"] autorelease];
///[这里为重用标识符使用了不同的名称];////
if ([self tableView:tableView inSection2:indexPath.section]) {
Coffee *co =[appDelegate.coffeeArray2 objectAtIndex:indexPath.section-s1Count-1];
cell.textLabel.text=co.coffeeName;
}
if ([self tableView:tableView inSection1:indexPath.section]) {
Coffee *co =[appDelegate.coffeeArray1 objectAtIndex:indexPath.section];
cell.textLabel.text = co.coffeeName;
CGRect cellname = CGRectMake(5, 0, 290, 25);
UILabel *cellabel = [[[UILabel alloc] initWithFrame:cellname] autorelease];
cellabel.backgroundColor = [UIColor whiteColor];
cellabel.font = [UIFont italicSystemFontOfSize:20];
cellabel.textColor=[UIColor blueColor];
cellabel.highlightedTextColor = [UIColor clearColor];
cellabel.text=co.coffeeName;
[cell.contentView addSubview:cellabel];
}
// Configure the cell...
if ([self tableView:tableView canCollapseSection:indexPath.section])
{
if (!indexPath.row)
{
// first row
// only top row showing
if ([expandedSections containsIndex:indexPath.section])
{
cell.accessoryView = [myuicontroller accessoryWithColor:[UIColor grayColor] type:DTCustomColoredAccessoryTypeUp];
}
else
{
cell.accessoryView = [myuicontroller accessoryWithColor:[UIColor grayColor] type:DTCustomColoredAccessoryTypeDown];
}
}
else
{
// all other rows
cell.accessoryView = nil;
cell.accessoryType =UITableViewCellAccessoryDisclosureIndicator;
CGRect cellname = CGRectMake(5, 0, 290, 25);
UILabel *cellabel = [[[UILabel alloc] initWithFrame:cellname] autorelease];
cellabel.backgroundColor = [UIColor whiteColor];
cellabel.font = [UIFont italicSystemFontOfSize:13];
cellabel.textColor=[UIColor blueColor];
cellabel.highlightedTextColor = [UIColor clearColor];
// cellabel.text =[NSString stringWithFormat:@"category"];
[cell.contentView addSubview:cellabel];
myscrollView *svb;
svb=[[myscrollView alloc]initwitharray:appDelegate.newscat1];
}else{
myscrollView *s;
NSLog(@"inside the textlabel ext%@",cell.textLabel.text);
NSLog(@"count of array %d",[appDelegate.newscat1 count]);
NSString *cat=cell.textLabel.text;
[cell.contentView addSubview:s];
}
}
return cell;
最佳答案
在将单元出队之前,您需要设置备用重用标识符。目前,无论您位于哪个部分,您都会使标识符为“cell”的单元格出列,因此您通常会为表的第 1 部分部分返回第 0 部分单元格。
因此,对代码进行分支,以便根据 indexPath.section
的值执行不同的操作:
if (indexPath.section == 0)
cellIdentifier = @"thisCell";
else
cellIdentifier = @"otherCell";
然后将您的单元格出列,如果它为零,则使用上面相同的单元格标识符变量进行创建。
您应该只在 (cell = nil) 代码中添加 subview - 否则您最终会得到具有大量重叠 subview 的单元格,并且会浪费内存。如果单元格已出列,您只需配置现有的 subview ,无需创建新的 subview 。您可以在添加 subview 时为其分配标签以协助完成此操作。
关于ios - dequeueReusableCell 导致奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7847792/
根据官方文档,有两种方法可以从tableView的队列中获取可重用的cell。一个是 dequeueReusableCell(withIdentifier:for:),另一个是 dequeueReus
如您所知,如果不以某种方式重置tableViewCells,则在上下滚动后可能会错误显示。在网上搜索但没有找到满意的答案后,我想知道该怎么做。 我正在使用一个带有可重复使用的标识符的prototype
无法理解 UITableview 对“dequeueReusableCell”方法的调用。 UITableview 中的 dequeue 过程是如何发生的?我们是获得可重复使用的电池还是总是获得新电池
我正在创建一个类似于 bbc 应用程序的 iOS 应用程序- 我有一个表格 View ,有两个部分- 第一部分包含包含 ScrollView 宽图像的单元格- 第二部分包含可扩展单元格,其中包含 Sc
我有一个 tableView 是这样设置的: func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSInd
我在一个列表中使用了一个dequeueReusableCell,单元格中有4个UILabel。下面有截图。 凡是有“-”字头的标签,都是红色的,但翻了几页,数字就乱七八糟了。想知道是否有办法避免这种情
我有一个 Collection View ,我正在为单元格使用一个自定义类。每个单元格都有两个 TextView ,chapterTitleTextView 和 chapterBodyTextView
我是 iOS 编程领域的新手,我最近在网上看到了一些实现的代码示例,例如: functableView(_ tableView: UITableView, cellForRowAt indexPath
我在 Swift 上使用表格和单元格时遇到问题。 我创建了一个简单的 UITableViewController,其中包含两部分静态单元格。 回顾一下: 1 个表格 View 2 个部分 4 个单元格
我有一个数组,我将其显示为 dequeueReusableCell,我想在单元格旁边显示适当的图像。我的图像与位于 Assets 中的数组中的项目同名。 如何在 dequeueReusable 单元格
我正在使用自动填充实现搜索。我有 UITextField 和 UITableView。当用户更改文本字段中的文本时,我从服务器加载新数据并将其显示在表格 View 中。 结果的数量是固定的(5 个或更
好的,情况如下: 我有一个 Collection View ,在 cellForRow 中,我使用 dequeueReusableCell 来重用单元格。在每个单元格上,我都有一个自定义 UIView
当我们越过特定数量的行时,我想在自定义单元格中隐藏一些元素。我添加了比可见行更多的行,因为我需要滚动到没有弹跳效果的最后一行。但是现在我有更多的单元格,我不需要行 > 13 之后的单元格。 我尝试用
不断收到此错误: 'Editor placeholder in source file' 在 tableView.dequeueReusableCell 行上,不知道哪里出了问题。请帮助如何摆脱这个错
我现在有一个表格 View ,它被设置为像 Netflix 或 Spotify 侧 ScrollView 一样工作。为此,我向每个单独的表格单元格添加了一个 ScrollView ,该表格单元格包含列
我有一个数组,我为每个数组项创建了一个单独的 vc,tableView.dequeueReusableCell 显示错误的 vc。我读到这是因为该单元格是可重复使用的,并且它保留了先前选择的数组中的数
我有一个非常简单的 UIScrollView,其中包含一些内容(许多 subview )。此 ScrollView 用于显示用户发布的一些帖子(图片+文本)。其中一个 View 实际上是作者的图像,它
我正在尝试使用 UITableView 制作列表并收到错误消息: [UITableView] 没有成员“dequeueReusableCell” 我创建了一个带有原型(prototype)单元格的表
在 viewDidLoad 中,我像这样注册单元格: let cellIdentifier = "Cell" override func viewDidLoad() { super.viewD
我们已经设置了我们的 tableviewSource 和一个 tableview,但是在滚动大量单元格时,数据出现在错误的单元格中并且选择状态被应用于多个单元格时遇到了问题。 表格单元格根据 n+1
我是一名优秀的程序员,十分优秀!