iOS 虚拟键盘添加view

转自:http://blog.csdn.net/duxinfeng2010/article/details/8269644

思路基本一样,不过考虑到显示效果,去除了很多不必要的代码,自己更改了下


#import "ViewController.h"


@interface ViewController ()

@property (weak, nonatomic) IBOutlet UITextField *textField;

@property (strong, nonatomic) UIView *exitButton;

@property (weak, nonatomic) UIButton *cancleButton;

@end


@implementation ViewController


- (void)viewDidLoad

{

    [super viewDidLoad];

    _exitButton = [[UIButton alloc] init];

    CGRect exitBtFrame = CGRectMake(0, self.view.frame.size.height , self.view.frame.size.width, 30.0f);

    

    [_exitButton setFrame:exitBtFrame];

    _exitButton.backgroundColor = [UIColor grayColor];

    

    UIButton *returnButton = [[UIButton alloc] initWithFrame:CGRectMake(_exitButton.bounds.size.width - 50, 0, 50, 30)];

    returnButton.backgroundColor = [UIColor redColor];

    [returnButton setTitle:@"完成" forState:UIControlStateNormal];

    [returnButton addTarget:self action:@selector(CancelBackKeyboard:) forControlEvents:UIControlEventTouchDown];

    

    [_exitButton addSubview:returnButton];

    [self.view addSubview:_exitButton];

    

   

    

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

    

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

    NSLog(@"%@",_exitButton);

}


- (void)handleKeyboardDidShow:(NSNotification *)notification

{

    NSDictionary *info = [notification userInfo];

    CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey]CGRectValue].size;

    CGFloat distanceToMove = kbSize.height;

    [self adjustPanelsWithKeyBordHeight:distanceToMove];

}


- (void)handleKeyboardWillHide:(NSNotification *)notification

{

    if (_exitButton) {

        CGRect exitBtFrame = CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, 30.0f);

        _exitButton.frame = exitBtFrame;

        [self.view addSubview:_exitButton];

    }

}


-(void)adjustPanelsWithKeyBordHeight:(float) height

{

    if (_exitButton) {

        CGRect exitBtFrame = CGRectMake(0, self.view.frame.size.height - height-30, self.view.frame.size.width, 30.0f);

        _exitButton.frame = exitBtFrame;

        [self.view addSubview:_exitButton];

    }

}


-(void)CancelBackKeyboard:(id)sender

{

    [_textField resignFirstResponder];

    

}



-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

    [self.textField resignFirstResponder];

}



- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值