2011-05-02 3 views
2

UITextField를 활성화 할 때 키보드가 나타나는 방식과 같이 선택기 하위보기를 사용하여 사용자 지정보기에 애니메이션을 적용합니다.키보드처럼 탭 막대 위로 픽커보기를 움직입니다.

현재 사용자 정의보기를 하위보기로하여 응용 프로그램의 UIWindow에 추가합니다. 현재 탭 막대보기 컨트롤러보기에 하위보기로 사용자 지정보기를 추가하면 탭 막대가 선택 도구를 덮습니다. 사용자 정의보기를 덮는 탭 막대없이 현재보기 컨트롤러의 하위보기로 사용자 정의보기를 애니메이션하는 방법이 있습니까? 키보드는 어떤 시각에 나타 납니까?

답변

7

약간의 면책 조항 : 이것은 stackoverflow에 대한 첫 번째 게시물입니다. 형식화가 모두 좋지 않은 경우 그 사실을 사과드립니다. 또한 iOS 프로그래밍뿐만 아니라 Objective C 언어에 대해서도 상당히 익숙합니다. 따라서 이것이 반드시 수행되어야하는 방식이라고 명확하게 말하지는 않습니다. 그러나 최근에는 꽤 비슷한 생각으로 해결 된 비슷한 상황이 발생했습니다 :

나에게 UIPickerView를 사용하는 것이 텍스트 필드에 텍스트를 입력하는 것이 바람직한 방법 일 수 있습니다. 일반 키보드. 사용자 경험 관점에서 볼 때 UIPickerView는 키보드와 비슷한 방식으로 나타나야합니다.

아이폰 OS 3.2 이후,의 UITextField는 UIPickerView를 표시하는 방법을 제공하는 키보드로 사용하는 사용자 정의보기를 할당 할 inputView 속성을 지원합니다 : 그런

UIPickerView *myPickerView = [[UIPickerView alloc] init]; 
//myPickerView configuration here... 
myTextField.inputView = myPickerView; 

합니다. UIPickerView에 반환 버튼이 없으므로 뷰를 닫을 수있는 직접적인 방법은 없습니다. inputAccessoryView 속성을 사용하여 툴바를 완료 버튼으로 표시하는 것이 좋습니다 (바는 미학을위한 것일뿐 아니라 단지)가있는 UIButton 개체를 사용

내가 질문을 다시 읽어
UIToolbar *myToolbar = [[UIToolBar alloc] initWithFrame: 
CGRectMake(0,0, 320, 44); //better code with variables to support view rotation 
UIBarButtonItem *doneButton = 
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone 
target:self action:@selector(inputAccessoryViewDidFinish)]; 
//using default text field delegate method here, here you could call 
//myTextField.resignFirstResponder to dismiss the views 
[toolbar setItems:[NSArray arrayWithObject: doneButton] animated:NO]; 
myTextField.inputAccessoryView = myToolbar; 
//you can -release your doneButton and myToolbar if you like 

, 내가 UIPickerView가 서브 뷰의 한 부분입니다 것으로 나타났습니다. 어쨌든이 방법은 모든보기에서 작동하므로 하위보기를 UITextField의 inputView로 설정합니다.

0

활성 컨트롤러 (tabBarController.selectedViewController.view가 아닌 ​​tabBarController.view)의 뷰가 아닌 UITabBarController의 뷰 자체에 하위 뷰를 추가하고 추가 한 하위 뷰에서 bringSubviewToFront를 시도해 볼 수 있습니다. 나는 이것을 시도하지 않았다, 그래서 그것이 작동하는지 나는 확실하지 않다.

UITabBarController가 협조에 의존하기 때문에 약간의 해킹이 발생합니다.이 동작은 잘 정의되어 있지 않아 불편합니다. 나는 본질적으로 UIWindow를 사용하는 것에는 아무런 문제가 보이지 않는다.

관련 문제