gpt4 book ai didi

iphone - 将 UITextField 添加到 UITableViewCell 仅在最后一个单元格中显示一个 textField

转载 作者:行者123 更新时间:2023-11-28 20:40:17 25 4
gpt4 key购买 nike

我有一个包含许多单元格的 TableView 。每个单元格都有自己的 UITextField。我以编程方式添加了文本字段。我希望每个 textField 在点击编辑按钮时出现。 (现在表格处于编辑模式),再次按下时,我希望所有文本字段都消失(离开编辑模式)。我知道我可以使用 hidden 属性来完成此操作,但我尝试使用此方法执行此操作:

    - (IBAction)editButton:(id)sender 
{
if (self.editing)
{
[self setEditing:NO animated:YES];
[self.myTableView setEditing:NO animated:YES];
EditButton.title = @"Edit";
cellText.hidden = YES; //<-- THIS IS THE CODE
}
else
{
[self setEditing:YES animated:YES];
[self.myTableView setEditing:YES animated:YES];
EditButton.title = @"Done";
cellText.hidden = NO; //<-- THIS IS THE CODE
}
}

但它只显示和隐藏最后一个单元格的文本字段。我怎样才能把它放到它显示的地方,然后不显示每个单元格的文本字段?提前致谢!!!

行单元格

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];


cellText = [[UITextField alloc]init];
[cellText setFrame:CGRectMake(190, 15, 55, 30)];
cellText.text = @"1";
cellText.borderStyle = UITextBorderStyleRoundedRect;
cellText.hidden = YES;
cellText.userInteractionEnabled = NO;
[cell addSubview:cellText];
}

return cell;
}

提前致谢!! :D

最佳答案


你可以解决这个问题,使用这个技巧,我不确定它是否会在你的代码中造成内存泄漏。因为,它每次都会创建新的单元格。但是你肯定可以使用它,如果你不得到一些正确的方法来做这件事。 ;)

- (IBAction)editButton:(id)sender 
{
if (self.editing)
{
[self setEditing:NO animated:YES];
[self.myTableView setEditing:NO animated:YES];
EditButton.title = @"Edit";

}
else
{
[self setEditing:YES animated:YES];
[self.myTableView setEditing:YES animated:YES];
EditButton.title = @"Done";

}
[self.myTableView reloadData];
}

重新加载 TableView 后,检查 cellForRowAtIndexPath 中的条件,或者将 self.editing 的值传递给 TextField,使其隐藏/显示。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];


cellText = [[UITextField alloc]init];
[cellText setFrame:CGRectMake(190, 15, 55, 30)];
cellText.text = @"1";
cellText.borderStyle = UITextBorderStyleRoundedRect;
cellText.hidden = YES;
cellText.backgroundColor = [UIColor redColor];
cellText.userInteractionEnabled = NO;
[cell addSubview:cellText];

cellText.hidden=!self.editing;

return cell;
}

关于iphone - 将 UITextField 添加到 UITableViewCell 仅在最后一个单元格中显示一个 textField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8830115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com