[问题] UISearchBar 点击取消后跳动的问题

问题详情:

首先是TableView 作为 NavigationController 的 RootViewContrller, 然后UISearchBar

     添加到TableView 的 headView 上,同时 UISearchDisplayController 的 contentsController

为tableView, SearchBar 为tableView headview 上的 searhBar,然后点击后 searchBar 会平滑

移动到 NavgationBar 的位置,点击取消或蒙版的,searhBar 会跳动下再回到正确的位置。

解决办法:

在控制器的viewdidload: 中加入

    [self setAutomaticallyAdjustsScrollViewInsets:YES];
    [self setExtendedLayoutIncludesOpaqueBars:YES];
    

查找原因过程:

首先是看到 FontAwesome 的搜索没有问题然后就看其实现,没有改变UINavigationBar的默认颜色,

   没有UINavigationItem,然后就将其全部注释,然后问题依然, 再 设置UINavigationBar 的 translucent 属性

   为YES,接着打开 UINavigationBar 的背景色,然后问题又出现了,由于背景色要同时设置状态栏的颜色,所以设置代码为

    [[UINavigationBar appearance]setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

同时不使用 图片的方式,通过遍历系统子控件设UINavigationBar 的设置背景色同样也会导致跳动,

问题就可能是系统SDK的问题了,猜测而已。。然后就各种关键词搜。。最后。。。

详情解释:

http://stackoverflow.com/questions/20565980/uisearchbar-in-uitableviewheader-strange-animation-on-ios-7

时间: 2024-10-09 05:42:27

[问题] UISearchBar 点击取消后跳动的问题的相关文章

UISearchBar 点击取消回到原来位置时会跳动的解决方法

今天改动项目里面測试给提的bug.有一个bug就是当点击UISearchBar的取消buttonUISearchBar回到原来位置时会发生偏差50像素左右的跳动,细致看看前面几个程序写的那个页面,也没有发现UISearchBar的代理方法 -(void)searchBarCancelButtonClicked:(UISearchBar *)searchBar{ } 去网上找了半天,才发现有一个帖子里说在viewDidLoad中加入这么两句代码就能够 [self setAutomaticallyA

confirm对话框取消后阻止ajax操作、ajax做批量删除

在做批量删除的时候,需要用confirm弹出一个提示框让用户确认是否删除,点击确定,执行操作,点击取消,取消操作.但是如果使用ajax把选中项的主键值传到处理页面处理时,如果使用下面的方法将confirm直接写在按钮里面,在点击取消后,ajax会继续执行操作,删除选中项. 1.confirm错误写法: <button type="button" onclick="return confirm('确定删除选中项吗!')" id="piliang&quo

【前端JS】radio 可单选可点击取消选中

一般情况下 radio 单选框只能实现多选一的效果,但是一旦选择其中一个后,这个单选框就不可点击取消其选中状态了,这种功能在某些业务环境下并不适用,有时我们既需要单选框的多选一效果,也需要复选框的可点击取消效果.为此本文提供一种 JQuery 写法. /* 1. 取消与当前控件name 相同的所有控件的选中状态 2. 选中当前控件 3. 如果当前控件在点击前是选中状态,则点击后取消其选中状态 */ $("input:radio").click(function(){ var domNa

Android实现点击通知栏后,先启动应用再打开目标Activity

情况简述 在开发Android app的过程中,遇到这样一个需求:app中启动一个Service,该Service在独立进程中运行,与服务器保持长连接,将服务器推送过来的消息在通知栏中显示,并设置点击动作,点击后跳转到app中对应的Activity.目前遇到的问题是Service以独立进程运行,在收到消息并弹出通知后,app本身的进程有两种情况: app正在运行 app已退出 对于第一种情况,处理就非常简单了,直接将参数传入Intent并打开对应的Activity即可. 但第二种情况比较复杂,因

百度云推送点击通知后进入不了想要的页面

之前看声明周期,发现进入特定界面后就直接onPause()了,然后就进入入口界面了,之后就destory了.不知道什么原因.一開始以为是调用了两次方法,可是查了再查.改了再改都没用,以为是框架问题,发现并不冲突. 后来发现当使用百度平台发送就能进入想要的界面.用自己服务端代码发送点击后就不能进入. 后来查看服务端代码,找到里面有一个open_type,官方解释例如以下: open_type:点击通知后的行为(1:打开Url; 2:自己定义行为:3:默认打开应用;); url:须要打开的Url地址

点击TButton后的执行过程

问题的来源:在李维的<深入浅出VCL>一书中提到了点击TButton会触发WM_COMMAND消息,正是它真正执行了程序员的代码.也许是我比较笨,没有理解他说的含义.但是后来经过追踪代码和仔细分析,终于明白了整个过程.结论是,自己对Win32的不够了解,其实触发按钮就是靠这个WM_COMMAND消息,VC里也是这样做的. 现象:有没有发现TButton既有OnClick,又有OnMouseDown,它们之间是什么区别和联系是什么呢?普通的按钮点击到底是哪个事件执行了程序员的代码,又是如何执行的

计算机点击右键后里面没有设备管理器了

用这个注册表内容,方法当然就是把以下内容复制到以个新建的记事本离,然后保存并把后缀名改为reg,再双击导入注册表就可以Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\DevMgr]@=hex(2):40,00,25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,

UISearchBar 点击X 按钮收键盘

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText;{ NSLog(@"textDidChange---%@",searchBar.text); if (searchBar.text.length == 0) { [self performSelector:@selector(hideKeyboardWithSearchBar:) withObject:searchBar aft

checkbox点击选中,再点击取消,并显示在文本框中

function checkItem(e,itemId) { var item = document.getElementById(itemId); var $items = $(item); if (e.checked) { var checkval = $items.val(); var str = $("#txtFilePath").val() + checkval; $("#txtFilePath").val(str); } else { var a = &