2013-04-06 55 views
0

滾動看起來像一個非常簡單的問題,但我還沒有找到一個解決辦法:保持的UIDatePicker從TableView中

我有一個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; 
     } 
    } 
} 

的問題是,無論何時被顯示在選擇器,它向上和向下滾動與該表的其餘部分。除了在選擇選擇器時簡單地禁用表格視圖上的所有滾動功能,我怎樣才能保持選擇器固定但可以滾動表格?

+0

是您的視圖控制器'UITableViewController'子類? – MishieMoo 2013-04-06 18:25:04

回答

1

你可以把它添加到密鑰窗口:

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

因此這將是在上面。您將它添加到您的表格視圖中(假設您使用的是UITableViewController)。

0

如果你在iOS 6中,您可以設置的UIDatePicker和self.view.superview之間的約束。這將防止日期選擇器移動:它將被「固定」到超級視圖。

1

一些試驗,我發現這個工作後,很容易對我來說:[self.window addSubview:picker];

爲了去除選擇器,然後我用:[picker removeFromSuperview];