IOS开发Swift键盘收起,键盘挡住输入模框的处理

来源:互联网 发布:淘宝的优惠券怎么发放 编辑:程序博客网 时间:2024/05/21 17:22

1, UITableViewController 不能自动处理软键盘遮挡输入框的问题为:原因是重写的viewWillAppear方法中没有调用 super.viewWillAppear(animated),调用一下即可


2. 当第一种方法不起作用时:  实现代理UITextFieldDelegate中的三个方法,将输入框的代理设置为self

       textFieldDidBeginEditing 方法的中的代码目的是计算UITextField的位置是否要移到多少才不被键盘挡住,然后动画移动

       textFieldDidEndEditing 方法是复位

      

参考:  IOS中输入框被软键盘遮挡的解决办法       

//为了输入框不被软键盘挡住extension PublishSharedPicController:UITextFieldDelegate{        func textFieldDidBeginEditing(textField: UITextField) {        print("textFieldDidBeginEditing......")        //let frame:CGRect=textField.frame        //print("frame\(frame)")        //下面的        if(originFrame==nil){            originFrame = self.view.frame        }                let textBottom = self.view.frame.size.height - self.bottomView.scrollView.height - self.bottomView.publishBtnHeight                let offset = textBottom  - (self.view.frame.size.height - 216.0);//键盘高度216                //print("offset\(offset) textBottom:\(textBottom)")        let animationDuration = 0.30;                UIView.beginAnimations("ResizeForKeyboard", context: nil)        UIView.setAnimationDuration(animationDuration)                        //将视图的Y坐标向上移动offset个单位,以使下面腾出地方用于软键盘的显示        if(offset > 0){            self.view.frame = CGRectMake(0.0, -offset, self.view.frame.size.width, self.view.frame.size.height);        }        UIView.commitAnimations()    }        func textFieldShouldReturn(textField: UITextField) -> Bool {        print("textFiledShouldReturn.......")        textField.resignFirstResponder()        return true    }        func textFieldDidEndEditing(textField: UITextField) {        print("textFieldDidEndEdinting.......")        self.view.frame = originFrame!    }        //UITextField外收起键盘    override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {        if(!self.bottomView.editView.exclusiveTouch){            self.bottomView.editView.resignFirstResponder();        }    }}


3 ,UITextField外收起键盘:实现代理UITextFieldDelegate中的一个方法,将输入框的代理设置为self

    //UITextField外收起键盘    override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {        if(!self.bottomView.editView.exclusiveTouch){            self.bottomView.editView.resignFirstResponder();        }    }


相关:IOS 关闭键盘 退出键盘 的5种方式


0 0
原创粉丝点击