未解决的问题:关于toolbar和键盘一起上移的问题

未解决问题!!:

目标:在键盘上方加一个toolbar,可以随着键盘一起上移和消失

我查找了几种方法  试了

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

和再添加一个 UIKeyboardWillHideNotification 两个通知方法,并在回调函数里添加我自己的toolbar 但是真机测试的时候,键盘和toolbar并没有一起显示 

而是键盘先显示 然后点别的地方再点这个textfiled的时候 toolbar才和键盘一起显示,难道是加载顺序的问题么。。


代码如下 不知道错误在哪里

- (void)keyboardWillShow:(NSNotification *)notification
{
    NSLog(@"%s", __func__) ;
    UIToolbar *toolbar = [[UIToolbar alloc] init];
    toolbar.barTintColor =  [UIColor colorWithRed:255.0/255.0 green:240.0/255.0 blue:245.0/255.0 alpha:100];
    
    CGFloat screenW = [UIScreen mainScreen].bounds.size.width;
    toolbar.bounds = CGRectMake(0, 0, screenW, 44);
    
    
    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc ] initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self action:@selector(leaveEditMode)];
    
    
    
    //固定长度的按钮
    UIBarButtonItem *fixedBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
    
    fixedBtn.width = 10;
    
    
    //可拉伸的按钮
    UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
    
    
    
    toolbar.items = @[fixedBtn,flexible,doneBtn];
    
    
    self.productTip.inputAccessoryView = toolbar;
    

    
    
    
    
}





//键盘弹起后处理scrollView的高度使得textfield可见
-(void)keyboardDidShow:(NSNotification *)notification
{
    
    NSLog(@"%s", __func__) ;

    if (keyboardIsShown) {
        return;
    }
    NSDictionary * info = [notification userInfo];
    NSValue *avalue = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
    CGRect keyboardRect = [self.view convertRect:[avalue CGRectValue] fromView:nil];
    CGRect viewFrame = [myscrollview frame];
    viewFrame.size.height -= keyboardRect.size.height;
    myscrollview.frame = viewFrame;
    CGRect textFieldRect = [currentTextfield frame];
    [myscrollview scrollRectToVisible:textFieldRect animated:YES];
    keyboardIsShown = YES;
}


然后我试着把添加toolbar的方法添加在viewWillLoad方法中 问题就解决了 。。但是为什么上面那个方法不行呢!!


另外一个问题就是一个scrollView里有几个文本框 当进入这个viewcontroller的时候 焦点初次在文本框中 ,scrollview是无法滚动的,当把

  // 设置UIScrollView的contentSize
    //myscrollview.frame = CGRectMake(0, 0, 320, 400);
    
    self.ScrollView.contentSize = CGSizeMake(320, 400);
这段代码从viewdidload中写到viewwillappear中 问题就解决了。。估计还是加载的问题!~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值