将 UIDatePicker 添加到单元格内容视图

Posted

技术标签:

【中文标题】将 UIDatePicker 添加到单元格内容视图【英文标题】:Adding UIDatePicker to cell content view 【发布时间】:2015-02-02 17:40:49 【问题描述】:

我正在尝试将 UIDatePicker 的实例放在 UITableView 单元格的附件视图中,并且一直遵循此 SO thread 作为模板。但是,看起来选择器完全被放置在单元格上方:

下面是我用来尝试将日期选择器添加到 UITableView 的附件视图的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellNewRowAtIndexPath:(NSIndexPath *)indexPath

    static NSString *CellIdentifier = @"RowCell";

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier];
    

    cell.backgroundColor = [UIColor colorWithRed:0.922 green:0.937 blue:0.949 alpha:1];

    switch (indexPath.row) 

        case EmployeeOvertimeRow:
            cell.textLabel.text = NSLocalizedString(@"Test", @"One");
            _datePicker = [[UIDatePicker alloc]init];
            _datePicker.datePickerMode = UIDatePickerModeTime;
            //OLD: cell.accessoryView     = _datePicker;
            //POST EDIT
            [cell.contentView addSubview:_datePicker];

            break;
        default:
            break;
    

    return cell;

有人对我做错了什么或如何解决这个问题有任何指导吗?

【问题讨论】:

【参考方案1】:

UITableViewCellaccessoryView 肯定不是你想的那样:它是单元格右侧的小视图,通常是一个箭头,而且非常小,不是屏幕的宽度一点也不。您应该尝试将您的视图添加到contentView。您还需要在 heightForRowAtIndexPath 方法中为您的单元格设置更大的高度。

【讨论】:

谢谢 Emilie,我对附件视图感到困惑的原因是在代码的其他地方(我继承的),一个 UISwitch 被添加到单元格的附件视图中,所以我试图用 UIDataPicker 复制它。我将违规行更改为: [cell.contentView addSubview:_datePicker];但是,目前,我没有实现 heightForRowAtIndexPath 方法,只有 heightForHeaderInSection 方法,所以我需要更改它..

以上是关于将 UIDatePicker 添加到单元格内容视图的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8表格单元格内容不显示

表视图,如何将删除按钮放在前面?

iOS 以编程方式为表格视图单元格内容创建 NSLayoutConstraint

Swift:每次重新加载时都会一次又一次地添加表格视图单元格内容?

移除单元格附件后,如何将微调器与单元格内容视图居中?

表格视图高度之外的行的单元格内容发生变化(要查看此单元格,我们向下滚动)?