美文网首页
scrollview上的textfile随键盘的改变而改变位置

scrollview上的textfile随键盘的改变而改变位置

作者: shouyu | 来源:发表于2017-05-24 16:41 被阅读0次

    - (void)viewDidLoad {

    [super viewDidLoad];

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

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

    }

    - (void) keyboardShow:(NSNotification *) notif

    {

    // 获得键盘尺寸

    NSDictionary *info = notif.userInfo;

    NSValue *aValue = [info objectForKeyedSubscript:UIKeyboardFrameEndUserInfoKey];

    CGSize keyboardSize = [aValue CGRectValue].size;

    if (scrollNum==0) {

    //重新定义ScrollView的尺寸

    CGRect viewFrame = self.scrollView.frame;

    viewFrame.size.height -=(keyboardSize.height);  //原来的尺寸减去键盘的高度

    self.scrollView.frame = viewFrame;

    //获取当前文本框架大小

    CGRect textFileRect = [textFile frame];

    //滚动到当前文本框

    [self.scrollView scrollRectToVisible:textFileRect animated:YES];

    scrollNum=1;//防止多个textfile来回切换时多次执行

    }

    }

    - (void) keyboardChange:(NSNotification *) notif

    {

    // 获得键盘尺寸

    NSDictionary *info = notif.userInfo;

    NSValue *aValue = [info objectForKeyedSubscript:UIKeyboardFrameEndUserInfoKey];

    CGSize keyboardSize = [aValue CGRectValue].size;

    //当键盘隐藏的时候,将scrollView重新放下来

    CGRect viewFrame = self.scrollView.frame;

    viewFrame.size.height += keyboardSize.height;

    self.scrollView.frame = viewFrame;

    scrollNum=0;

    }

    相关文章

      网友评论

          本文标题:scrollview上的textfile随键盘的改变而改变位置

          本文链接:https://www.haomeiwen.com/subject/wkjoxxtx.html