如何使UITableViewCell
无论如何都粘在它所属的UITableView
的底部?
行不能再移动或编辑(因为我配置了canMoveRowAtIndexPath:
和canEditRowAtIndexPath:
这样做),但它上面的行仍然可以移动到它下面。我希望最后一行始终是最后一行
作为数据源的数组包含我创建的自定义类的实例。但是,我希望最后一个单元格的内容是NSString
。例如:@"Last row..."
.
所以我想要固定的内容(我通过删除该行的编辑选项来实现这一点)和固定的位置(无论如何总是最后)。
我想知道是否有一种方法可以在没有表脚的情况下实现这一点。
有可能吗?如何?
谢谢。
我现在正在通过一本教程学习iOS编程。我遇到了和你一样的问题。我在这本书的论坛上找到了解决办法。在这里,我为你发布解决方案。在您配置canMoveRowAtIndexPath:
之后,我只发布剩下的部分,这对您来说也是棘手的部分。
撰写解决方案的人说:"我试图处理的主要事情是阻止其他项目向上移动到最后一个以及它能够被编辑"记住,在移动一行时,应该通过发送消息:tableView:moveRowAtIndexPath:toIndexPath:
向其数据源报告移动首先你应该在TableViewController中实现这个方法像这样
-(void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath
{
if(destinationIndexPath.row == [yourRowArray count]
{
return;
}
else{
originally moving method you implemented before;
}
}
其次,这是很重要的一点,我们需要确保如果您尝试将建议的索引设置为底部项,它会失败并返回到源索引路径。"
- (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath
{
if( sourceIndexPath.section != proposedDestinationIndexPath.section )
{
return sourceIndexPath;
}
else
{
if (proposedDestinationIndexPath.row == [yourRowArray count]) {
return sourceIndexPath;
} else {
return proposedDestinationIndexPath;
}
}
}
完成!简单的对吧?然后你会发现没有表脚,只使用一个简单的文本单元格,最后一个单元格不能移动和编辑,也永远不能从最后一个位置被敲出来。