0

似乎是一个非常简单的问题,但我还没有找到解决方案:

我有一个UIDatePicker显示何时选择某个表格视图单元格。我用以下代码显示它:

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 1) {
        switch (indexPath.row) {
            case 0: {
                _alarmPicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 315, 320, 0)];
                [_alarmPicker setDatePickerMode:UIDatePickerModeTime];
                [_alarmPicker addTarget:self action:@selector(alarmPickerChanged) forControlEvents:UIControlEventValueChanged];
                [self.view addSubview:_alarmPicker];
            }
                break;

            default:
                break;
        }
    }
}

问题是,无论何时显示选择器,它都会随着表格的其余部分向上和向下滚动。除了在选择选择器时简单地禁用表格视图上的所有滚动之外,我如何保持选择器固定但表格可滚动?

4

3 回答 3

1

您可以将其添加到关键窗口:

[[[UIApplication sharedApplication] keyWindow] addSubview:_alarmPicker];

因此它将在顶部。您正在将它添加到您的表格视图中(假设您正在使用UITableViewController)。

于 2013-04-06T18:25:11.103 回答
1

经过一些试验,我发现这对我来说很容易:[self.window addSubview:picker];

为了删除我然后使用的选择器:[picker removeFromSuperview];

于 2013-05-23T02:38:52.703 回答
0

如果您使用的是 iOS 6,则可以在 UIDatePicker 和self.view.superview. 这将阻止日期选择器移动:它将被“固定”到超级视图。

于 2013-04-06T18:28:04.123 回答