尝试将内联 UIDatePicker 添加到 UITableViewCell

2023-11-30

我正在尝试在 TableView 单元格内创建一个内联 DatePicker,类似于this and this所以线程。

我使用下面的方法创建日期选择器,该方法在加载视图时调用:

- (void)createDatePicker{
    _datePicker = [[UIDatePicker alloc]init];
    _datePicker.datePickerMode = UIDatePickerModeTime;
    _datePicker.clipsToBounds = YES;
    _datePicker.backgroundColor = [UIColor colorWithRed:0.922 green:0.937 blue:0.949 alpha:1];

    NSLog(@"date picker created");
}

然后,我检查表视图中第三部分的底行是否被选中。如果是,并且日期选择器尚未显示,那么我调用该方法来显示日期选择器的单元格:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == HourTimeZoneRow && self.datePickerIsShowing == NO)
    {
        NSLog(@"Time of day section");
        [self showDatePickerCell];
    } else
    {
        [self hideDatePickerCell];
    }
    [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}

以下是显示日期选择器单元格的方法:

- (void)showDatePickerCell {
    [self.tableView addSubview:_datePicker];
    self.datePickerIsShowing = YES;
    self.datePicker.hidden = NO;
    [self.tableView reloadData];
    NSLog(@"Show date picker");
}

...并隐藏单元格:

- (void)hideDatePickerCell {
    self.datePickerIsShowing = NO;
    self.datePicker.hidden = YES;
    [self.tableView reloadData];
    NSLog(@"Hide date picker");
}

下面是确定表格视图是否需要添加额外单元格来显示 UIDatePicker 的方法。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        switch (section) {
            case TableSectionOne:
                return TotalRowsSection1;
                break;
            case TableSectionTwo:
                return TotalRedZoneRows;
                break;
            case TableSectionThree:
                if (self.datePickerIsShowing == YES) {
                    return TableSectionThree + 1;
                }
                else {
                    return TableSectionThree;
                }
                break;
            default:
                return 0;
                break;
        }
    }

最后,下面的方法应该确定日期选择器单元格的高度:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    CGFloat rowHeight = self.tableView.rowHeight;

    if (indexPath.row == HourTimeZoneRow){
        rowHeight = 164;
    }
    else {
        rowHeight = self.tableView.rowHeight;
    }
    return rowHeight;
}

但是,发生的情况是,当选择第三部分的最后一行时,日期选择器将显示在第一部分的第一行中。有人对我做错了什么有什么建议吗?


您将 datePicker 添加到 tableView,而不是 tableView 中的单元格。

从 showDatePicker 单元格中删除此行:

[self.tableView addSubview:_datePicker];

然后将其添加(或取消隐藏)到 cellForItemAtIndexPath 内的正确单元格内。

(就像是:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableItem";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
    }

    if (indexPath.row == HourTimeZoneRow) {
        // show the datePicker here
    }

    cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
    return cell;
}

)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试将内联 UIDatePicker 添加到 UITableViewCell 的相关文章

随机推荐

  • 为什么我的 Xamarin iOS 中的 WebRequest 在 ipv6 环境中失败?

    我设置了本地ipv6环境如下https developer apple com library content documentation NetworkingInternetWeb Conceptual NetworkingOvervie
  • 如何使用 Microsoft Bot Framework 显示来自我的机器人的欢迎消息

    我想在有人连接到我的机器人时显示欢迎消息 我使用了 github 上的 demo ContosoFlowers 示例中的技术 https github com Microsoft BotBuilder Samples tree master
  • 绘制太多点?

    R 基 格或其他 如何从 100000 个元素向量 或输出该值的函数 创建图形 它会阴谋一些而拒绝另一些吗 将所有内容都放在彼此之上 我怎样才能改变这种行为 我怎样才能创建一个图表 让我在每个时间间隔都能看到最大值和最小值 就像交易 条形
  • 导出的 JAR 无法读取图像 [重复]

    这个问题在这里已经有答案了 我正在尝试让图像显示在 JPanel 中 这是我正在使用的代码 URL imageURL BufferedImage image null ImageIcon icon imageURL getClass get
  • 使用 PDO 在 postgres 中自动回滚

    我发现postgres PDO自动回滚当抛出异常时 先前的更改 即使异常被捕获并吞下 示例 伪代码 transaction gt begin try manager gt insert INSERT try manager gt exec
  • Pandas - DataFrame 聚合行为异常

    相关Dataframe聚合方法传递列表问题 and Pandas 无法使用聚合函数列表进行聚合 考虑这个数据框 import pandas as pd import numpy as np df pd DataFrame index ran
  • 如何使用 dill 库通过 shelve 库进行对象序列化

    我在用着PyMemoize缓存协程的库 我装饰了协程 但是当 Python 调用它时 我得到 TypeError can t pickle coroutine objects 发生这种情况是因为PyMemoize内部尝试腌制协程并将其存储在
  • 手动签署 AppSync URL 以在 Lambda 中使用会出现错误的签名错误

    在 Lambda 中 我想签署我的AppSync端点与aws signature v4以便将其用于突变 生成的 URL 似乎没问题 但当我尝试它时 它给了我以下错误 errors errorType InvalidSignatureExce
  • 如何使用 nextjs 处理获取 URL

    因此 我尝试将 nextjs 应用程序部署到 vercel 但它在代码的索引获取 URL 部分始终失败 在我的index js页面目录的文件我有以下代码 export async function getStaticProps const
  • Zend Framework:无法确定临时目录,请手动指定cache_dir

    我刚刚学习 Zend 框架 我创建了一个简单的 Zend Form 当我提交表单时 出现以下错误 An error occurred Application error Exception information Message Could
  • Xcode 4.2 中的 Guard Malloc。它在哪里?

    它在哪里 Xcode 中还有其他可用的工具吗 谢谢 现在 NDA 不再适用于 xcode 4 2 以下是包含所需步骤的屏幕截图 对于仍在寻找 Guard Malloc 的人来说 这应该会更快
  • 如何将各种类型的函数指针存储在一起?

    普通指针可以使用通用存储void e g void arr 10 arr 0 pChar arr 1 pINt arr 2 pA 不久前 我看到一个讨论 void 可能无法在所有平台 例如 64 位及更多 中存储函数指针而不丢失数据 但我不
  • 使用java插入二叉树不起作用

    我目前正在使用java学习树 我这里发生了一些错误 在二叉树中插入项目 我不明白为什么它不起作用 这是代码 树节点 public class TNode int data TNode left TNode right public TNod
  • 更新 AppWidget 上的 TextView 文本大小

    我无法弄清楚这一点 我已经为此苦苦挣扎了好几天 我已经厌倦了 我正在使用配置活动中的 Spinner 更改 AppWidget 上 TextView 的文本大小 但无法正确更新 我告诉它第一次时它不会更新 但第二次和第三次以及之后的每次都会
  • 如何测试网页是否包含某些文本

    我正在尝试检测网页是否包含某些文本 例如 我想看看是否这个网页包括以下短语 这是我的代码 我无法发现 如果那么 条件得到满足 这就是我正在尝试的 Const READYSTATE COMPLETE 4 Declare Function Se
  • 列表视图在视图翻转器内滑动

    我试图在列表视图上左右滑动并切换视图翻转器 就像 remeberthemilk 应用程序以及 Nexus One 上的默认新闻和天气应用程序一样 滑动浏览新闻主题 使用我找到的各种教程 我在 stackoverflow 上发现了一个展示如何
  • 无法通过c#删除.exe文件

    我在 Windows 窗体应用程序中有一个更新按钮 当用户单击更新按钮时 应用程序会检查应用程序的当前版本与从 Web 服务获取的服务器中的可用版本 如果版本不匹配 应用程序将从Web服务获取的路径下载新版本 我目前在同一解决方案中使用两个
  • 运行jsp文件时出现错误

    我在 eclipse juno 中创建了一个简单的 Hello jsp 程序 当我尝试通过在服务器上运行来运行此 jsp 文件时 出现以下错误 出现问题 在本地主机上发布到 Tomcat v6 0 服务器 遇到了问题 发布失败并出现多个错误
  • 使用 pandas python 的 SuperTrend 代码

    我正在尝试使用 pandas 在 python 中为 SuperTrend 指标编写以下算法 BASIC UPPERBAND HIGH LOW 2 Multiplier ATR BASIC LOWERBAND HIGH LOW 2 Mult
  • 尝试将内联 UIDatePicker 添加到 UITableViewCell

    我正在尝试在 TableView 单元格内创建一个内联 DatePicker 类似于this and this所以线程 我使用下面的方法创建日期选择器 该方法在加载视图时调用 void createDatePicker datePicker