IOS scrollView与键盘结合使用--防止遮盖控件
来源:互联网 发布:青岛seo外包公司 编辑:程序博客网 时间:2024/06/05 07:49
<span style="font-family: Arial, Helvetica, sans-serif;">#import "ViewController.h"</span>
@interface ViewController ()@end@implementation ViewController- (void) initScrollView{ // setting contentSize; self.scrollView.contentSize = CGSizeMake(320, 600); [self.scrollView setContentOffset:CGPointMake(0, 100) animated:YES];}- (void)viewDidLoad { [super viewDidLoad]; [self initScrollView];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}- (void) viewWillAppear:(BOOL)animated{ //注册键盘出现通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil]; //注册键盘隐藏通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil]; [super viewWillAppear:animated]; }- (void) viewWillDisappear:(BOOL)animated{ //解除键盘出现通知 [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidShowNotification object:nil]; //解除键盘隐藏通知 [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidHideNotification object:nil]; [super viewWillDisappear:animated];}- (void) keyboardDidShow:(NSNotification *) notif{ if(keyboardVisiable) { return; } // 获得键盘尺寸 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; //获取当前文本框架大小 CGRect textFieldRect = [self.textField frame]; //滚动到当前文本框 [self.scrollView scrollRectToVisible:textFieldRect animated:YES]; keyboardVisiable = YES; }- (void) keyboardDidHide:(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; if (!keyboardVisiable) { return; } keyboardVisiable = NO; }#pragma mark -- UITextFieldDelegate method- (BOOL)textFieldShouldReturn:(UITextField *)textField{ [textField resignFirstResponder]; return YES;}@end
viewControl.h文件:
#import <UIKit/UIKit.h>@interface ViewController : UIViewController<UITextFieldDelegate>{ BOOL keyboardVisiable;}@property(weak,nonatomic) IBOutlet UIScrollView *scrollView;@property (weak, nonatomic) IBOutlet UITextField *textField;@end
0 0
- IOS scrollView与键盘结合使用--防止遮盖控件
- 键盘移动,防止遮盖内容
- ios 键盘遮盖
- IOS UITextField输入 键盘遮盖
- IOS键盘遮盖问题解决办法
- IOS ScrollView滚动控件使用
- IOS学习之scrollView与键盘协同
- android ScrollView 与SeekBar结合使用
- ios 键盘遮盖TextField的解决方法
- iOS添加蒙层(遮盖层),遮盖层上放控件
- 使用UITextField 键盘遮盖输入框
- 解决listview与scrollview结合使用时出现的问题
- 解决listview与scrollview结合使用时出现的问题
- 解决listview与scrollview结合使用时出现的问题
- ZYKeyboardUtil 两个Block搞定键盘遮盖输入控件
- IOS控件- scrollview
- ScrollView使用技巧之实现滑动遮盖ImageView(View)
- IOS 防止键盘遮挡文本框
- JavaScript:选择框脚本(select标签)
- 十五周项目 补充
- Rxjava Rxandroid入门基础
- SimpleAdapter
- 【MVC】MVC中页面传值的几种方式总结
- IOS scrollView与键盘结合使用--防止遮盖控件
- ibatis常用16条SQL语句
- 剖析HTML与XML
- C语言中Printf和Scanf 的使用方法详细
- 舍得舍得,只有舍,才有得,总是得,总感觉不太好
- 结果跳转方式
- c++作业七
- 一个用java仿照魔塔写的小游戏
- Hibernate温习--多事务并发访问控制