【问题标题】:Display and hide DatePicker on UITableViewCell tap在 UITableViewCell 点击时显示和隐藏 DatePicker
【发布时间】:2015-03-02 17:00:04
【问题描述】:

我有一个表格视图控制器,我需要在点击单元格时显示日期和时间选择器,并在再次点击单元格时隐藏它。当您选择开始和结束日期和时间以在日历中创建新事件时,iPhone 的效果基本相同。

我猜测显示和隐藏是通过以下方法进行的,但我不确定里面是什么:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {}

一些示例代码或链接会很棒。谢谢!!

【问题讨论】:

    标签: ios objective-c uitableview datepicker uidatepicker


    【解决方案1】:

    使用您想要显示的任何内容和选择器创建您的单元格:

    -----------------------------------
     cell visible part
    -----------------------------------
     cell invisible part (with picker)
    -----------------------------------
    

    定义一个属性,让您知道是否必须显示整个单元格:

    @property (nonatomic) BOOL shouldShowPicker;
    

    初始化此属性(例如在 viewDidLoad 上);

    self.shouldShowPicker = NO;
    

    几种触摸方法:

    -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        if(indexPath.row == 4) { //where your picker row is
            self.shouldShowPicker = YES;
                [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
        }
    }
    
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if(indexPath.row == 4 && self.shouldShowPicker) { //where your picker row is
             return CELL_VISIBLE_PLUS_INVISIBLE_PART;
        } else if(indexPath.row == 4 && !self.shouldShowPicker) {
             return return CELL_VISIBLE_PART;
        } else {
             return OTHER_CELLS_HEIGHT;
        }
    }
    

    【讨论】:

      【解决方案2】:

      您可能会发现我在这里的回答很有用,它描述了您需要做什么。

      Inline UIPicker Implementation

      基本上,您创建一个包含日期选择器的自定义单元格,并带有可选按钮。然后在编辑时将此单元格添加到单元格下方,并在完成后将其删除。全部在链接中解释。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-15
        • 2018-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多