我有一個基於視圖的應用程序,它有一些文本框,我試圖用一些選取器來填充。例如,其中一個將用於日期選擇。我使用下面的一個新視圖添加到我的當前視圖的底部,然後向上滾動整個視圖:如何添加UIDatePicker子視圖與工作用戶交互
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if(textField == [self date]) {
editingDate = YES;
UIDatePicker *pv = [[UIDatePicker alloc] initWithFrame:CGRectMake(0,460,0,0)];
pv.userInteractionEnabled = YES;
[self.view addSubview:pv];
textField.placeholder = @"currently selecting below";
[self scrollTheView:YES];
return NO;
}
return YES;
}
我scrollTheView方法執行如下:
- (void)scrollTheView:(BOOL) moveUp {
int scrollAmount = 212;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect rect = self.view.frame;
if(moveUp){
rect.origin.y -= scrollAmount;
}
else {
rect.origin.y += scrollAmount;
}
self.view.frame = rect;
[UIView commitAnimations];
}
我的問題是雖然顯示看起來很完美,但datepicker控件根本不會接受我的輸入。它只是停留在當前日期。我不確定我在這裏錯過了什麼,可能很簡單。
是的,就是這樣。我可以看到它,但不使用它。如果我確實檢查'剪輯子視圖',那麼我甚至不能看到子視圖......所以這裏真正的解決方案是什麼?我的方法完全錯誤嗎? – shawnwall 2010-01-29 04:33:37
這聽起來像你走錯了路。嘗試添加UIDatePicker到你的viewController的視圖屬性。如果這是您在scrollTheView中操作的同一件事,請勿。你不應該調整視圖的邊界。嘗試將東西移動到子視圖中並移動它們。 – 2010-01-29 05:06:28
啊,我的複雜性是,我確實想把整個初始視圖向上移動,這樣當新的日期選擇器從底部向上滾動時,它實質上是向上推動現有視圖。我正在使用[self.view addSubview:picker]添加新的選擇器; self.view.frame的起源是我在上面的方法代碼中一直在向上移動。 – shawnwall 2010-01-29 12:55:36