2012年12月11日

//当搜索框在底部的时候,点击弹出来的键盘会将其遮住,需要将frame上提;具体方法:

1.给键盘注册监听通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];


2.处理通知事件

#pragma mark Responding to keyboard events

- (void)keyboardWillShow:(NSNotification *)notification {

    

   NSDictionary *userInfo = [notification userInfo];

   NSValue* aValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey];       

   CGRect keyboardRect = [aValue CGRectValue];

    

    // Get the duration of the animation.

   NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];

   NSTimeInterval animationDuration;

    [animationDurationValue getValue:&animationDuration];

    

    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:animationDuration];

   searchView.frame = CGRectMake(0.0f, (float)(416.0-keyboardRect.size.height), 320.0f, 44.0f);

    [UIView commitAnimations];

    

}



- (void)keyboardWillHide:(NSNotification *)notification {    

   NSDictionary* userInfo = [notification userInfo];

    

NSValue *animationDurationValue = [userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey];

   NSTimeInterval animationDuration;

    [animationDurationValue getValue:&animationDuration];

    

    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:animationDuration];

   searchView.frame = CGRectMake(0.0f, 416.0f, 320.0f, 44.0f);

    [UIView commitAnimations];

}


你可能感兴趣的:(iOS开发总结)