Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使UITableViewCell粘贴到最后一个位置_Ios_Objective C_Xcode_Uitableview - Fatal编程技术网

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的底部约束,我不介意在单元格中执行此操作。事实上,我更喜欢有一个实际的细胞,而不是另一个视图在顶部。所以,如果你对如何使用手机有任何想法,请分享。另外,如何修改表的底部约束?