- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含四个部分的表格 View ,第一部分有 7 行,前六行有一个文本字段,最后一行有两个文本字段
第 1 节
t1
t1
t1
t1
t1
t1
t1 t2
第 2 节
t1 t2
t1 t2//第二行文本字段放在第四行
t1 t2
t1 t2//第四行文本字段被放置在其他行中
t1 t2
t1 t2
t1 t2
第 3 节
t1 t2
t1 t2
t1 t2
t1 t2
t1 t2
t1 t2
t1 t2
第 4 节
t1
t1
t1
t1
t1
t1
t1
t1
第二和第三部分包含七行,每行有两个文本字段
第四部分有八行,每行包含一个文本字段我为所有文本字段分配了唯一标签
在 textFieldDidEndEditing 中,我将内容保存到适当索引中的数组中。
如果我在文本字段中输入数据后滚动表格 View 。某些文本字段位置已更改(即)第二行中的文本字段被放置在第三行中,类似地某些行被交换。
我为第一部分的前六行创建了 5 个单元格标识符,第二个用于第一部分的最后一行,其余三个单元格标识符用于其他部分。
当我滚动一些时候 cell.contentview viewWithtag 返回标签的 nil 值
我认为这是某些行中文本字段错误的原因。
如何纠正这个问题?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *identifier;<bn>
UITableViewCellStyle style = UITableViewCellStyleDefault;<br>
BOOL selectable = NO;<br>
switch (indexPath.section)
{
case 0:
{
if(indexPath.row < 6)
identifier = @"firstsectionSixRows";
else
identifier = @"firstsectionLastRow";
break;
}
case 1:
identifier = @"secondsection";
break;
case 2:
identifier = @"thirdsection";
break;
case 3:
identifier = @"fourthsection";
break;
}
return [self createCellForIdentifier:identifier
tableView:tableView
indexPath:indexPath
style:style
selectable:selectable];
}
else if([identifier isEqualToString:@"secondsection"])
{
int TextTag = 8 + indexPath.row * 2;
UILabel *lblName = (UILabel*)[cell.contentView viewWithTag:10000];
lblName.text = [NSString stringWithFormat:@"G%d",indexPath.row + 1];
//NSLog(@"row = %d texttag = %d",indexPath.row,TextTag);
UITextField *txtFirst = (UITextField*) [cell.contentView viewWithTag:TextTag];
if([textFieldArray count] > 0)
{
if(![[textFieldArray objectAtIndex:TextTag] isEqualToString:@""])
{
if(txtFirst)
txtFirst.text = [NSString stringWithFormat:@"%@",[textFieldArray objectAtIndex:TextTag]];
else
NSLog(@"Textfield is nil \n tag = %d \n cell section = %d row = %d",TextTag,indexPath.section,indexPath.row);
}
}
UITextField *txtSecond = (UITextField*) [cell.contentView viewWithTag:TextTag + 1];
if([textFieldArray count] > 0)
{
if(![[textFieldArray objectAtIndex:TextTag + 1] isEqualToString:@""])
{
if(txtSecond)
txtSecond.text = [NSString stringWithFormat:@"%@",[textFieldArray objectAtIndex:TextTag + 1]];
else
NSLog(@"Textfield is nil \n tag = %d \n cell section = %d row = %d",TextTag + 1,indexPath.section,indexPath.row);
}
}
}
最佳答案
我遇到了同样的问题(奇怪的文字出现在这里和那里,文本字段交换内容等等)。
原来是我的问题是不断重新创建 UITableViewCells
我一直在滚动 UITableView
.我怀疑你的表格 View 很长,所以它不适合一个屏幕,所以你不能摆脱滚动。我也有UITextFields
在我的UITableViewCells
.
在我的情况下发生的事情是,一旦 UITextViewCell
从屏幕上消失,它被释放(这发生在你的情况下,因为你使用的是单元格标识符,我明白了)。下次它出现在屏幕上时,它将重新使用以前的文本字段及其文本和设置。
我最终做的是检查 UITextFields
的创建量在细胞中。这些现在创建一次,并且在 UITableViewCell
期间保持静态。 ,也就是说,我不重新创建 UITextFields
每次cellForRowAtIndexPath
叫做。
我认为您应该注意的另一个问题是:
[UITableView cellForRowAtIndexPath:]
[UITableViewDelegate tableView: cellForRowAtIndexPath:]
[UIView viewWithTag:]
的零稍后的...
关于ios - Tableview [cell.contentview viewwithtag :] is returning nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4053541/
我的UICollectionView有一个UILabel和一个UIImageView,我认为它们并且工作得很好,如下所示: func collectionView(collectionView: U
我对函数 viewWithTag 有一个奇怪的行为。 我的 Storyboard看起来像这样:-viewController --UIScrollView1(应该是一个 UIView 但还没有改变)
我正在尝试创建一系列带有标签的标签,然后更新文本。但是,只有最后一个标签会被更新。如何更新所有标签或特定的标记标签? 此示例应创建 4 个标签,其中包含数字 1、2、3、4。然后应该用 A、B、C、D
我正在尝试使用标签名称显示单元格标签文本。在我的主 Storyboard的默认单元格中,我添加了一个标签并将标签名称添加为 70。我正在尝试使用以下方法加载该数据。没有显示出来。请帮我。 [Crop
我有一个函数包括以下行: var chanceLabel : UILabel? = self.view.viewWithTag(uni_tag) as? UILabel 我的 Storyboard的结
我有 3 个 UIImageView 作为缩略图,带有标签:1、2、3。 以下方法: - (IBAction)showImage:(UIGestureRecognizer *)sender { i
我通过 Storyboard设计了 tableView,在一个单元格中我有一个按钮和一个标签。按钮在 Storyboard上有标签 1 和标签在 Storyboard上有标签 2。在 cellForR
我对 viewWithTag 有疑问。我使用此代码以编程方式从我的 Storyboard 中调用 UIViewController。然后我想设置 2 个 imageView 并使用 viewWithT
如果我有以下 View 层次结构 UIView --- 顶层 View --UIButton --UIView ----UILabel ----UILabel -- 标签 = 1 如何从顶级 View
在 IB 中查看我有很多项目(包括 View 本身)。只有一项具有标签 0,但以下行适用于除标签 0 之外的任何 UITextBox。请注意,只有一个 UITextBox 具有标签 0,原因是: (U
static NSString *cellID = @"Cell Identifier"; UITableViewCell *cell = [tableView dequeueReusableCell
我在 Storyboard中有一个带有自定义单元格的表格 View 单元标识符是:MyCustomCellIdentifier 标签的框架是:{ { 15.0f, 178.0f }, { 280.0f
我有一个 UITableView,其中的单元格包含一个 TextView ...我最初使用它来设置它们,但使用的是 viewWithTag: UITableViewCell *cell = [tabl
例如, UIImageView *iconView = [cell.contentView viewWithTag:TestTag]; 我记得如果我不显式转换类型之前会有警告,但现在 Xcode 没有
我试图通过在按下 UIButton 时调用 viewWithTag 来重用标签。代码第一次执行时看起来没问题,但是由于第 7 行多次执行它是否会泄漏?从 superview、alloc 和 addSu
我目前正在使用 nibs,需要根据国家/地区以编程方式更改基于其标签的图像。我试过: vc.view.viewWithTag(8).image = UIImage(named:"image") 但它会
我正在尝试将 UIbutton 添加到特定的 StackView。 我想出的是 viewWithTag(2)?.addSubview(button) 这样实现有错吗?或者有什么更好的实现方法吗? 最佳
我有 6 行由自定义单元格组成的 tableView。 自定义单元格有一个 UILabel 和一个 UISwitch。在“cellForRowAtIndexPath:”方法中,我有: stat
我想隐藏 UILabel 但我无法将我的标签隐藏在 ViewDidLoad 之外或“在 ViewDidLoad 之内但在 for 循环之外”。在 for 循环内的 ViewDidLoad 中,我可以实
我开始了一个新项目,我想知道是否有人试验过哪个更有效,在 .h 文件中声明一个对象(例如 UIButton)或在 viewDidLoad 方法中创建对象并使用 viewWithTag: 方法在创建元素
我是一名优秀的程序员,十分优秀!