iOS 键盘弹出视图上移

iOS 键盘弹出视图上移

首先明白两个概念

-坐标系
iOS坐标系原点都是左上角,无论哪种坐标系

-frame,bounds
两者都是CGRect结构,定义初始点的位置及长宽,不同的是frame是相对坐标,即相对于父视图的坐标,bounds是的绝对坐标,相对于根视图。

键盘弹出,改变的是当前视图相对父视图的位置,所以改变的是frame的坐标

常用的登陆视图

//textfield例子
-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
    CGFloat offset = self.view.frame.size.height -(textField.frame.origin.y+textField.frame.size.height+216+50);
    if(offset<=0){
      [UIView animateWithDuration:0.3 animations:^{
           CGRect frame= self.view.frame;
           frame.origin.y=offset;
           self.view.frame=frame;
      }];

    }
    return  YES;
}

-(BOOL)textFieldShouldEndEditing:(UITextField *)textField{

    [UIView animateWithDuration:0.3 animations:^{
        //这样不行,不能直接修改origin
        //self.view.frame.origin.y=0.0;

        CGRect frame=self.view.frame;
        frame.origin.y=0.0;
        self.view.frame=frame;
    }];
    return  YES;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值