iOS 根据键盘的高度动态改变UIView的高度

在我们使用键盘时常常出现键盘挡着视图这种情况,下面我给大家介绍一种方法可以根据键盘的高度来动态改变视图的度使其可以始终在键盘的上边

在这里视图我用TextView

UIKeyboardWillShowNotification//键盘弹出

UIKeyboardWillHideNotification//键盘缩回

//用通知监听键盘的弹出

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

//监听键盘的缩回

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

//设置delegate

_myTextView.delegate=self;

// Do any additional setup after loading the view, typically from a nib.

}
//显示

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

//获取键盘的高度

CGRect rect =[notification.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

//计算出 textView的height

CGRect textViewRect=_myTextView.frame;

CGFloat height=textViewRect.size.height-rect.size.height;

textViewRect.size.height=height;

[UIView animateWithDuration:.2 animations:^{

self.myTextView.frame=textViewRect;

}];

}

//键盘隐藏时调用

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

_myTextView.frame=self.view.frame;

}

这样就可以达到我们想要的效果了  如果有什么问题可以提问哦。大家一起学习

时间: 2025-01-31 06:44:33

iOS 根据键盘的高度动态改变UIView的高度的相关文章

【iOS知识学习】_iOS动态改变TableView Cell高度

在做tableView的时候,我们有时候需要根据cell的高度动态来调整,最近在网上看到一段代码不错,跟大家Share一下. 在 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 类中获取cell的高度: CGSize boundSize = CGSizeMake(216, CGFLOAT_MAX); cell.textLabel.text

js动态改变iframe的高度

js动态改变iframe的高度的写法 〈iframe id="docDetail" width="100%"  height="200" frameborder="0" src="a.htm"〉 〈/iframe〉 而a.html不是固定大小的,这个时候嵌套的iframe就会出现滚动条. 通过js获取iframe的高度,然后动态的改变,这样就不会出现滚动条. 方式一:在jsp的body里增加onload方法

autolayout高度动态改变的一些体会

autolayout这个东西就不在此说明了,网上已经有很多大神做了很详细的讲解,自己也看了不少好文章,在这里只是想记录一下自己初步的一些认识与体会,这个东西毕竟还是很强大,如果要用到更高级的用法还得在研究. 首页这边先描述一个动态cell,然后先进行一些必要的布局,布局完大概是这个样子 主要是关注测试label,标题和图片的布局这边只要固定边距或固定宽高就可以了.首先有没有一种情况就是cell高度固定,然后让这个测试label动态增长到一定行数,假设测试label动态增长到2行,那我们首页就要设

动态改变cell的高度&beginUpdates和endUpdates-实现UITableView的动画块

1.利用reloadRowsAtIndexPaths:withRowAnimation:来动态改变cell的高度 UITableView的- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation 这一方法会重新加载所指定indexPaths中的UITableViewCell实例,因为重新加载cell所以会请求这个UITableView实例的dat

iOS开发中如何在键盘弹出时改变View的高度

在iOS开发的时候有两个经常要用到的控件UITextfield跟UITextView,我们输入内容基本是通过这两个控件进行的,但是有时候会遇到这样的问题:在点击输入之后弹出键盘遮盖住了输入框,可以通过以下办法解决: 添加通知监听键盘的弹出跟隐藏 //监听键盘弹出和隐藏 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillSho

[iOS]在tableview中用动画效果改变cell的高度

我们经常会碰到一些需要动画的地方,比如在TOP的发帖页面中,当我们选中一个文本编辑的cell时,cell的高度会动态的改变. 我们要的效果大概就是如下效果: 当我们选择一个cell的时候,我们就要改变它的高度,并且以动画的形式. 我们该如何实现这个效果呢?我们主要需要使用以下这两个方法: - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath - (void)ta

使用Autolayout实现UITableView的Cell动态布局和高度动态改变

本文翻译自:stackoverflow 有人在stackoverflow上问了一个问题: 如何在UITableViewCell中使用Autolayout来实现Cell的内容和子视图自动计算行高,并且能够保持平滑滚动的? 这个问题得到了300+的支持和450+的收藏,答案得到了730+的支持,很详细的说明了如何在iOS7和iOS8上实现UITableView的动态行高功能,并且这个答案对实现UICollectionView的动态行高也具有参考意义.所以在这里将这个答案翻译了一下,希望对大家有所帮助

swiper里面的,tab切换,不同的slide高度不一样,外层高度何如随之改变,如果里面的每一屏的高度不一样,那么就会一直以高度最大的一个座位最外层的高度,总成了页面内容少的那一页有很大空白,改如何动态改变外层的高度呢

解决方案:1.autoHeight: true;缺点:有明显的跳动效果2.先给容器设固定高度,每次滑动多少时,改变当前tab页的容器高度,我在实现是遇到一点小问题,代码忘记保存了. 3.滑动切换第二个页面的顶部,需要用scrollTop实现, onSlideChangeStart: function(swiper){ //$( '.swiper-container' ).scrollTop(0);这样是直接到顶部,往往会出现闪屏, $( '.swiper-container' ).animate

Android动态改变ListView的高度

定义一个函数将dp转换为像素 public int Dp2Px(Context context, float dp) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dp * scale + 0.5f); } 定义函数动态控制listView的高度 public void setListViewHeightBasedOnChildren(ListView listVie