gpt4 book ai didi

uitableview - ios7 - UITableViewCell 内置 UIPickerView 和 UIDatePicker

转载 作者:行者123 更新时间:2023-12-04 02:54:04 27 4
gpt4 key购买 nike

一个 number的帖子涉及主题:如何制作 inline UIPickerView .由于我很懒,任何人都可以指出我的代码片段。老实说,我发现 Apple DateCell 示例很迂腐——必须有一种更优雅的方法。

dateCell 应用程序是一个不错的起点吗?还是有其他更好的链接。我会很感激任何建议。

如果您阅读本文但不理解我的要求/目标,请参阅上面引用的两篇文章或直接下载 Apple Sample (需要开发帐户)。

最佳答案

我使用另一个——也许更简单的——解决方案来解决这个问题。

我们有两个单元格的图像

  • 日期标签单元格
  • 日期选择器单元格

  • 大多数“魔法”都在 table view delegate 的 tableView:heightForRowAtIndexPath: 中。方法:
    - (CGFloat)tableView:(UITableView:)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
    CGFloat heightForRow = tableView.rowHeight;

    if ([self isDatePickerRowAtIndexPath:indexPath]) {
    heightForRow = (self.isDatePickerShown) ? heightOfDatePicker : 0.0;
    }

    return heightForRow;
    }

    因此,您只需通过返回 0.0 的高度来“隐藏”日期选择器.

    tableView:didSelectRowAtIndexPath:您进行切换的方法:
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
    if ([self isDateLabelRowAtIndexPath:indexPath])
    {
    self.datePickerIsShown = ! self.isDatePickerShown;
    [tableView beginUpdates];
    [tableView endUpdates];
    }
    }

    呼唤空 beginUpdates endUpdates block 强制表调用 tableView:heightForRowAtIndexPath:再次(动画)并很好地淡入或淡出日期选择器单元格。

    当日期选择器单元格是一节中的最后一个单元格时,您可能还需要更新 日期标签 细胞的 separatorInsetUIEdgeInsetsZero当日期选择器被隐藏并显示为默认值时。

    编辑:

    为了完整起见: datePickerIsShown是一个简单的 bool 值:
    @property(nonatomic, getter = isDatePickerShown) BOOL datePickerIsShown;

    方法 isDateLabelRowAtIndexPath:isDatePickerRowAtIndexPath:只是比较给定 indexPath 的辅助方法到相应单元格的已知索引路径:
    - (BOOL)isDatePickerRowAtIndexPath:(NSIndexPath *)indexPath
    {
    return ([self.datePickerIndexPath compare:indexPath] == NSOrderedSame);
    }

    编辑 2:

    还缺少一个步骤:确保设置日期选择器单元格的 clipsToBounds属性(property)给 YES ,否则你会得到一些 View 故障。

    关于uitableview - ios7 - UITableViewCell 内置 UIPickerView 和 UIDatePicker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20566304/

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