gpt4 book ai didi

ios - 将 indexpath 存储在自定义 UITableViewCell 中

转载 作者:行者123 更新时间:2023-12-01 19:19:14 25 4
gpt4 key购买 nike

所以我试图在创建自定义单元格时存储单元格的索引路径

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

我在名为“自定义单元格”的类中定义了一个自定义单元格,并向该类添加了一个属性,定义如下:
@property (nonatomic, strong) NSIndexPath *indexPath;

cellForRowAtIndexPath我用 customCell.indexPath = indexPath. 设置索引路径

当我 NSLog它在下一行返回 null。有人可以解释为什么会这样吗?

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

EditableCell *editableCell = (EditableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (editableCell == nil) {

editableCell = [[EditableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

_myTextField = [editableCell textFieldCell];

if (indexPath.section == 0){
[_myTextField setPlaceholder:@"text"];
[_myTextField setReturnKeyType:UIReturnKeyNext];
}
else if (indexPath.section == 1){
[_myTextField setPlaceholder:@"text"];
[_myTextField setReturnKeyType:UIReturnKeyNext];
}
else {
[_myTextField setPlaceholder:@"text"];
[_myTextField setReturnKeyType:UIReturnKeyDone];
}

_myTextField.keyboardType = UIKeyboardTypeDefault;
_myTextField.delegate = self;

return editableCell;

}

我在哪里调用 [self.tableview indexpathforcell:cell]
-(BOOL)textFieldShouldReturn:(UITextField *)textField{

if (textField.returnKeyType == UIReturnKeyNext) {

UITableViewCell* myCell = (UITableViewCell*)textField.superview;
EditableCell *currentCell = (EditableCell *)myCell;


NSLog(@"INDEXPATH OF CURRENT CELL: %@",[self.tableView indexPathForCell:currentCell]);
}
}

最佳答案

您可以确定indexPath给定单元格使用

-[UITableView indexPathForCell:]

如果单元需要知道它自己的 indexPath :
NSIndexPath * myIndexPath = [(UITableView *)self.superview indexPathForCell:self]

但如果是这样,那就不对了!

查看您编辑的帖子,我发现了问题。你需要:
UITableViewCell* myCell = (UITableViewCell*)textField.superview.superview
textField实际上是单元格的 contentView 的 subview .这对我来说似乎总是有点不对劲,所以另一种处理方法是将您的自定义单元格设为 UITextFieldDelegate ,然后为您的单元创建一个委托(delegate)协议(protocol)。因此,在单元格内,您将拥有:
(BOOL)textFieldShouldReturn:(UITextField *)textField {

if (textField.returnKeyType == UIReturnKeyNext) {
[self.delegate customCell: self textFieldDidReturn: textField];
}

return NO;
}

然后在你的 细胞的委托(delegate)您将获得对单元格和文本字段的引用

关于ios - 将 indexpath 存储在自定义 UITableViewCell 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11128834/

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