由textview作为例子,直接上代码
-(BOOL)textViewShouldBeginEditing:(UITextView *)textView{
//UIView *view = [textViewsuperview];//如果textview在一个自定义view上则加上这句话
/*
self。view的高度加上滑动的距离,减去textview的父控件y与高度,和键盘的高度就可以算出一共需要的偏移值
如果不需要scrollview滚动,或者没有scrollview滚动,则下方的scrollview.contentoffset.y可以删除
*/
CGFloat offset =self.view.frame.size.height +_scrollView.contentOffset.y- (textView.frame.origin.y +textView.frame.size.height+316);
if (offset<=0) {
[UIViewanimateWithDuration:0.3animations:^{
CGRect frame =self.view.frame;
frame.origin.y = offset;
self.view.frame= frame;
}];
}
returnYES;
}
在结束时用
[UIView animateWithDuration:0.3 animations:^{
CGRect frame = self.view.frame;
frame.origin.y = 64.0;
self.view.frame= frame;
}];