Ios 如何使UITableViewCell粘贴到最后一个位置
如何使Ios 如何使UITableViewCell粘贴到最后一个位置,ios,objective-c,xcode,uitableview,Ios,Objective C,Xcode,Uitableview,如何使UITableView单元格粘贴到它所属的UITableView的底部 无法再移动或编辑该行(因为我配置了canMoveRowAtIndexPath:和canEditRowAtIndexPath:),但仍可以将其上方的行移动到其下方。我希望最后一排永远是最后一排 充当数据源的数组包含我创建的自定义类的实例。但是,我希望最后一个单元格的内容是NSString。例如@“最后一行…” 所以我想要固定的内容(我通过删除行的编辑选项实现了这一点)和固定的位置(无论发生什么情况,始终保持不变) 我想知
UITableView单元格
粘贴到它所属的UITableView
的底部
无法再移动或编辑该行(因为我配置了canMoveRowAtIndexPath:
和canEditRowAtIndexPath:
),但仍可以将其上方的行移动到其下方。我希望最后一排永远是最后一排
充当数据源的数组包含我创建的自定义类的实例。但是,我希望最后一个单元格的内容是NSString
。例如@“最后一行…”
所以我想要固定的内容(我通过删除行的编辑选项实现了这一点)和固定的位置(无论发生什么情况,始终保持不变)
我想知道是否有一种方法可以在没有表尾的情况下实现这一点
可能吗?怎么做
谢谢。我现在正在学习iOS编程,学习教程。我遇到了和你一样的问题。我在书的论坛上找到了解决办法。我在这里为您发布解决方案。 在您配置了
canMoveRowAtIndexPath:
之后,我只发布其余部分,这也是您需要注意的部分
撰写解决方案的人说:“我试图解决的主要问题是阻止其他项目向上移动,并使其能够被编辑。”
请记住,在移动行时,应通过发送以下消息将移动报告到其数据源:tableView:moverowatinexpath:toindepath:
因此,首先应该在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;
}
}
}
结束!简单对吧?然后您会发现,如果没有表尾,只使用一个简单的文本单元格,最后一个单元格就无法移动和编辑,也无法从最后一个位置删除。如果它只是一个简单的文本单元格,那么将
UIView
和UILabel
一起放在tableview的顶部,并将其放置在tableview的底部如何。您还可以将“空单元格”添加为相同高度的最后一个单元格,以确保滚动到tableview底部时所有单元格都可见。我同意@teamnorge的观点,如果您不想添加空单元格,可以更改tableview的底部约束,我不介意在单元格中执行此操作。事实上,我更喜欢有一个实际的细胞,而不是另一个视图在顶部。所以,如果你对如何使用手机有任何想法,请分享。另外,如何修改表的底部约束?