zoukankan      html  css  js  c++  java
  • 键盘弹出与隐藏对TextView的影响

    今天下午写了个Demo,让键盘弹出时整个View上移,隐藏时整个View回到原位。用通知做的

     1 #import "ViewController.h"
     2 
     3 @interface ViewController ()
     4 @property(nonatomic, strong)UITextField *textView;
     5 @property(nonatomic, strong)UIButton *btn;
     6 @end
     7 
     8 @implementation ViewController
     9 
    10 - (void)viewDidLoad {
    11     [super viewDidLoad];
    12     
    13     self.textView=[[UITextView alloc]init];
    14     self.textView.frame = CGRectMake(0, self.view.frame.size.height-500, self.view.frame.size.width, 200);
    15     self.textView.text=@"请输入文字";
    16     self.textView.backgroundColor = [UIColor grayColor];
    17     self.btn = [[UIButton alloc]initWithFrame:CGRectMake(20, 20, 100, 100)];
    18     self.btn.backgroundColor = [UIColor blueColor];
    19     [self.view addSubview:self.btn];
    20     [self.view addSubview:self.textView];
    21 }
    22 - (void)viewWillAppear:(BOOL)animated
    23 {
    24     //注册通知,监听键盘出现
    25     [[NSNotificationCenter defaultCenter]addObserver:self
    26                                             selector:@selector(handleKeyboardDidShow:)
    27                                                 name:UIKeyboardDidShowNotification
    28                                               object:nil];
    29     //注册通知,监听键盘消失事件
    30     [[NSNotificationCenter defaultCenter]addObserver:self
    31                                             selector:@selector(handleKeyboardDidHidden)
    32                                                 name:UIKeyboardDidHideNotification
    33                                               object:nil];
    34     [super viewWillAppear:YES];
    35 }
    36 
    37 //监听事件
    38 - (void)handleKeyboardDidShow:(NSNotification*)paramNotification
    39 {
    40     //获取键盘高度
    41     NSValue *keyboardRectAsObject=[[paramNotification userInfo]objectForKey:UIKeyboardFrameEndUserInfoKey];
    42     
    43     CGRect keyboardRect;
    44     [keyboardRectAsObject getValue:&keyboardRect];
    45     self.view.frame = CGRectMake(0,-20, self.view.frame.size.width, self.view.frame.size.height);
    46     //self.textView.frame = CGRectMake(0, self.view.frame.size.height-500-keyboardRect.size.height, self.view.frame.size.width, 200);
    47     //self.textView.frame = UIEdgeInsetsMake(0, 0,keyboardRect.size.height, 0);
    48 }
    49 - (void)didReceiveMemoryWarning {
    50     [super didReceiveMemoryWarning];
    51     
    52 }
    53 - (void)handleKeyboardDidHidden
    54 {
    55     self.view.frame = CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height);
    56     //self.textView.frame = CGRectMake(0, self.view.frame.size.height-500, self.view.frame.size.width, 200);
    57     //self.textView.contentInset=UIEdgeInsetsZero;
    58 }
    59 
    60 - (void)viewDidDisappear:(BOOL)animated
    61 {
    62     [[NSNotificationCenter defaultCenter] removeObserver:self];
    63 }
    64 @end
    View Code
  • 相关阅读:
    Heterogeneity Wins
    Android使用ImageView显示网络图片
    Android OOM的解决方式
    洛谷P3390 【模板】矩阵快速幂
    CF732D. Exams[二分答案 贪心]
    洛谷P3388 【模板】割点
    POJ2942 Knights of the Round Table[点双连通分量|二分图染色|补图]
    NOI2001|POJ1182食物链[种类并查集 向量]
    HDU3038 How Many Answers Are Wrong[带权并查集]
    NOIP2010关押罪犯[并查集|二分答案+二分图染色 | 种类并查集]
  • 原文地址:https://www.cnblogs.com/yelan/p/4963029.html
Copyright © 2011-2022 走看看