其中一個可能的解決方案是,當一個特定的單元被點擊並且你處理選擇器(呈現選擇器)時,你可以在tableview中插入一個名爲MASK View的視圖。 (使用Frame作爲self.tableview.frame - yourPicker.frame.size.height)。現在,當你永遠得到這一觀點的任何點擊,你可以按照如下
-(void)showMaskView{
if (!viewMaskView) {
CGRect viewRect = CGRectMake(0, 0, self.tableView.frame.size.width, self.tableView.frame.size.height - yourPicker.frame.size.height);
viewMaskView = [[MaskView alloc] initWithFrame:viewRect];
viewMaskView.delegate = self;
}
[self.view addSubview:viewMaskView];
[self.view bringSubviewToFront:viewMaskView];
}
-(void)removeMaskView{
if (viewMaskView) {
[viewMaskView removeFromSuperview];
}
//Remove the Picker
}
在MaskView類處理它,你可以操作觸摸如下
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
if(self.delegate && [self.delegate respondsToSelector:@selector(removeMaskView)])
[self.delegate removeMaskView];
}
你可以看到在彩色面具觀點選擇器在圖像中。當點擊時,它會刪除選取器。
所以我有完全相同的問題。我知道我該如何解決這個問題。我需要使用與隱藏鍵盤相同的概念,方法是將UIView更改爲UIcontrol以檢測觸摸。對於pickerView來說,由於它後面有一張桌子,所以它在編寫代碼時很痛苦。我只在上面放置一個完成按鈕,並使用[resignFirstResponder]作爲IBAction。 – Legolas 2011-06-09 21:34:12