gpt4 book ai didi

ios - 如何重新排列 UILocalNotification tableview 的单元格?

转载 作者:行者123 更新时间:2023-11-28 22:19:40 24 4
gpt4 key购买 nike

与我一起工作的一群程序员,我有一个带有 TableViewController 的 Storyboard,它显示了我们从日期选择器编码的 UILocalNotifications 列表。它们都有不同的时间,每次设置提醒时,时间戳都会与提醒文本一起显示在表格 View 单元格中。目前,提醒按时间顺序(设置顺序)显示。一旦 localNotification 被触发,带有旧提醒的单元格将被自动清除。到目前为止,所有这些都是成功的。

问题出在最后一个小函数上。由于正在制作的提醒应用程序是可定制的,我们希望用户能够四处移动单元格。作为一个团队,我们成功地允许用户编辑订单,但面临另一个困境。一旦订单被更改并且用户离开 View (应用程序基于导航栏)并返回到 View ,订单将默认恢复为原始订单,而不是他们从移动单元格输入的自定义订单。

所以,问题来了(希望我下面关于如何在表格 View 中输入数据的代码能够提供一些上下文)。我的小组想知道,我们如何根据列表保存和加载用户修改的单元格在表格中的位置。您可能会在我们的代码中注意到,仅通过调用 UILocalNotification 类,提醒列表完全按时间顺序排列。我们是否应该获取每个单独单元格的参数并将它们保存到数组中,然后以某种方式加载它们?对此问题的反馈将不胜感激。我还提供了几个屏幕截图,希望它们能让您了解最终用户端发生的情况。

我们组输入编辑参数如下:

   - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath

我们还有以下允许移动表格单元格的方法:

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
return YES;
}

支持重新排列表格 View 单元格。这是输入代码以保存头寸的最佳方法吗? UITableView 是否有任何属性可以保存和加载表格的状态?另外,如果我们需要将本地通知转化为字符串形式,这样做的语法是什么? << 这些子问题应该指导我发现难以表述的原始问题。

这是将信息输入到 TableView 中的方式。添加了一些适用的注释。

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

// Get list of local notifications
NSArray *localNotifications = [[UIApplication sharedApplication] scheduledLocalNotifications];
UILocalNotification *localNotification = [localNotifications objectAtIndex:indexPath.row];

// Display notification info
NSDate *date = localNotification.fireDate;

NSDateFormatter *formatter1 = [[NSDateFormatter alloc] init];
[formatter1 setDateFormat:@"dd/MM/yyyy"];
NSString *dateFormatter = [formatter1 stringFromDate:date];

NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
[formatter2 setDateFormat:@"EEEE hh:mm"];
NSString *dateFormatter2 = [formatter2 stringFromDate:date];

NSString *on = [dateFormatter2 stringByAppendingString:@" on the "];
NSString *final = [on stringByAppendingString:dateFormatter];

[cell.textLabel setText:localNotification.alertBody];

if (final.length != 8) {
[cell.detailTextLabel setText:final];
}
else {
[cell.detailTextLabel setText:@""];
}

return cell;

在应用程序的屏幕截图方面。这就是我们所拥有的。我们有一个编辑参数和在带有导航栏的 tableviewcontoller 中设置的单元格。主视图(如最上面的屏幕截图所示)是输入文本的地方。当选择日期选择器日期(或预设)时,这将作为 UIlocalnotification 输入

enter image description here

enter image description here

enter image description here

enter image description here

感谢您花时间回答这个问题。

最佳答案

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{

NSString * firstObject = localnotificationarray[fromIndexPath];
[localnotificationarray replaceObjectAtIndex: fromIndexPath withObject:localnotificationarray[toIndexPath]];
[localnotificationarray replaceObjectAtIndex: toIndexPath withObject: firstObject];
}

关于ios - 如何重新排列 UILocalNotification tableview 的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20760823/

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