UISearchBar的动画问题

作者:超级管理员 更新时间:2017-08-13 17:56:30 来源:未知 点击:15642
                       如图所示,我需要完成的功能是:当点击UISearchBar的输入框时,让整个tableView都向上滑动的动画。出现的问题如图所示,UISearchBar

       
        

         如图所示,我需要完成的功能是:当点击UISearchBar的输入框时,让整个tableView都向上滑动的动画。出现的问题如图所示,UISearchBar直接立刻跳到最后的位置,这是怎么回事啊。

        用的是UIView的动画
[UIView animateWithDuration:0.4 animations:^{
       self.shadowView.frame = CGRectMake(0, 50, self.view.frame.size.width, [UIScreen mainScreen].bounds.size.height);
}];


-------------------------------
    没人来回答吗。。那我自己来回答好了。。。

问题已经解决了,发现了- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar这个方法,当tableView的位置在Y2 Y3的位置时,就让Editing方法失效,

/**
      每次点击searchBar的textField时,都会走这个方法
 
 *      返回false时, searchBar的textField点击没有反应
 *      默认返回true
 */
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
{
    if (!self.offsetY) {
        self.offsetY = Y3;
    }
    
    // 如果点击时,shadowView的y坐标 在Y2 Y3的位置,
    if (self.offsetY > Y1) {
        NSLog(@"----------- y = %f ------------",self.offsetY);
        // ============ 触发block =============
        if (self.didClickTextFieldBlock) {
            self.didClickTextFieldBlock();
        }
        return false;
    }
    
    
    return true;
}


      然后在block里先做tableView上滑的动画,动画结束后再呼出键盘。注意一定要在动画结束后再呼出键盘,否则bug依然存在。

[self.vc didClickTextField:^{
        
        NSLog(@"receive-----------");
        [UIView animateWithDuration:0.4 animations:^{
            
            self.shadowView.frame = CGRectMake(0, 50, self.view.frame.size.width, [UIScreen mainScreen].bounds.size.height);
        }completion:^(BOOL finished) {
            // 呼出键盘。  一定要在动画结束后调用,否则会出错
            [self.vc.searchController.searchBar becomeFirstResponder];
        }];
        // 更新offsetY
        self.vc.offsetY = self.shadowView.frame.origin.y;
        
    }];



    更多细节在我的博客里, http://blog.csdn.net/a997013919/article/details/74507068,希望能够帮助到有同样问题的朋友
 
    最后上一下最终的效果图吧:

      
  


-------------------------------
嗯嗯,不错,键盘弹出自带动画

推荐阅读

热门内容

关于oc中的指针数组什么的在swift下

in objective-c: for ...

【Qualcomm线下沙龙到会赠送30元

本帖最后由CSDNhanrui于2017...

社区福利----机械出版CSDN赠书第一

今天大Y我联合机械出版开启重磅新书赠送活...

揭秘共享单车中的物联网IOT技术应用!!

物联网开发免费公开课来啦,名额有限,手慢...

Xcode 模拟器不能正常运行app了

在模拟器上运行app提示 :The re...

更新xcode 8.0 尺寸分类问题

本帖最后由weixin_35824766...

想学IOS开发高阶一点的东西,从何开始

       学习,并从事IOS开发快两...

有奖话题:为物联网而生的Snapdrag

本帖最后由CSDNhanrui于2017...

ios CABasicAnimation

ios  CABasicAnimatio...

ios怎么实现3des+base64加密

http://blog.csdn.net...

最新内容

mybatis奇怪的异常!!!时好时坏。。。。在线等!!!求指教!!!

springboot项目中报mybatis异常!!!Whitelabel Err...

网站建设运营和优化要点

    网站建设运营和优化,又简称为网站建设。当需要我们自己去做一些网站的改版工...

SSM整合项目的时候报错-Cause: org.xml.sax.SAXParseException;columnNumber: 1; 文件提前结束。

org.springframework.beans.factory.BeanCr...

帮看下

----------------------------------------...

如何获取数组指定的数据

{"code":0,"success":true,"message":"ok",...

php变量插入到mysql中为空

代码(编码方式都是utf-8)html代码:

关于oc中的指针数组什么的在swift下提示不存在下标

in objective-c: for (int j = 0; j < step...

Ajax请求PHP页面responseText返回的是一堆CSS,但我的PHP不含HTML的东西啊怎么回事

Eclipse提示没有类、函数。。。

十分疑惑,这个提醒功能只提醒基本语句,---------------------...

请问一下PHP怎么实现app商家客户端有新订单时语音提示信息?

消费者下单后,商家端的app上就提示语音:你有新订单--------------...

UISearchBar的动画问题

                       如图所示,我需要完成的功能是:当点...

你们用eclipse写jsp方便吗

1.虽然写jsp时有提示,只是提示貌似不全,比如写,提示的信息里面就没有...

大神看下

-------------------------------else不是应该放...

hibernate枚举映射成varchar,type设置了12,数据库还是int值,求大佬指教

枚举:package com.wego.domain;public enum C...

spring quartz定时任务通过mybtatis插入数据问题

spring quartz定时任务通过mybtatis插入数据,任务启动后日志记...

关于D3D中 png图片的透明度消失的问题

关于D3D中 png图片的透明度消失的问题png图片应该是可透明的可是用D3DX...

全面屏:手机品牌的营销武器,用户的坑?

(原标题:全面屏:手机品牌的营销武器,用户的坑?)在夏普推出全面屏手机AQUOS...

盘点那些别具一格的手机设计

(原标题:IT之家学院:盘点那些别具一格的手机设计)进入21世纪以来,手机在人们...

给分提高了,有勇夫乎?

what is the output  of this  code?     c...

新款三星C7全细节曝光 确认搭载双摄

  中关村在线消息:你知道三星首款搭载双摄的手机是谁吗?你一定首先想到即将发布的...