首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

隐藏UITableView searchBar会留下空白

隐藏UITableView的searchBar会导致tableView的contentInset属性发生变化,从而留下空白。具体来说,当searchBar隐藏时,tableView的contentInset属性的top值会增加,以保持tableView的内容不被searchBar遮挡。

解决这个问题的方法是在隐藏searchBar之前,将tableView的contentInset属性还原为初始值。可以通过以下步骤实现:

  1. 在隐藏searchBar之前,记录tableView的初始contentInset值,可以使用一个实例变量来保存这个值。
  2. 在隐藏searchBar之前,将tableView的contentInset属性设置为初始值。
  3. 隐藏searchBar。
  4. 在需要显示searchBar时,将tableView的contentInset属性恢复为初始值。

这样做可以确保隐藏searchBar时不会留下空白。

关于UITableView的searchBar,它是一种用于在tableView中进行搜索的控件。它通常位于tableView的顶部,用户可以在其中输入关键字来过滤tableView的内容。searchBar可以提高用户体验,使用户更方便地找到所需的数据。

推荐的腾讯云相关产品:腾讯云移动开发平台(https://cloud.tencent.com/product/mpp

腾讯云移动开发平台是一套提供移动应用开发所需的基础设施和服务的云计算平台。它提供了丰富的移动开发工具和服务,包括移动应用开发框架、云存储、推送服务、移动分析、移动测试等,帮助开发者快速构建高质量的移动应用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS中TableView小技巧

1、去除多余的列表线条 原始的TableView在没有数据的行也显示一条条的线条,不太美观,用一行代码可以解决,一般放在ViewDidLoad中 self.tableView.tableFooterView...不处理的情况下,选中一行后,该行会保持被选中的背景色,一般我们不希望其保持,而是一闪而过告知用户选中过就好了,在TableView的Delegate方法中实现: - (void)tableView:(UITableView...让搜索框之类的放弃第一响应即可: // 滑动时收起搜索框的键盘 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { [self.searchBar...resignFirstResponder]; } 4、去掉NavigationController下的TableView顶部出现的空白区域 iOS 7 中viewcontroller新增了属性automaticallyAdjustsScrollViewInsets...的高度,还要相应的改变cell的高度,才能正确地显示内容,通过以下方法动态地设置cell高度: // 首先根据内容修改cell高度 - (UITableViewCell *)tableView:(UITableView

96330

手把手带你撸一个网易云音乐首页(三)

tableViewDataSource: // Mark UITableViewDataSource override func numberOfSections(in tableView: UITableView...关于 headView 的实现方式,想必使用过 UITableView 的同学都不会陌生,可以通过下面的方法来实现: - (nullable UIView *)tableView:(UITableView...我已经将实现这个效果的教程写出来了,查看此文即可:使用 UICollectionView 实现首页卡片轮播效果 圆形菜单入口 该效果实现起来很简单,唯一有意思之处在于“每日歌曲推荐”这个按钮上中间的文字是随着日期改变的...= searchController.searchBar filterContentForSearchText(searchBar.text!)...} } extension MusicSearchViewController: UISearchBarDelegate{ func searchBar(_ searchBar: UISearchBar

2.3K10

iOS 问题总结(五)

UISearchController to be displayed 如果不添加上面这行代码,在设置 hidesNavigationBarDuringPresentation 这个属性为YES的时候,搜索框进入编辑模式导致...,搜索栏不可见,偏移 -64 ;在设置为 NO 的时候,进入编辑模式输入内容导致高度为 64 的白条,猜测是导航栏没有渲染出来。...现在搜索栏没有发生偏移,但是导航栏却没有隐藏,于是我把 NO 改为了 YES,运行如下图: ? ? 结果还是发生了偏移。...然后我又把隐藏导航栏设置为了YES: _searchController.hidesNavigationBarDuringPresentation = YES; 搜索框就能正常显示了,如下图: ?...然后我又试着把隐藏导航栏的属性注释掉,然后运行,还是能够正常显示,下面是随后的代码: -(UISearchController *)searchController { if (_searchController

1.6K10

iOS开发之有间距的UITableViewCell

UITableView是最常用的一个iOS控件,现要做一个如下图的UITableView,其中白色部分就是cell,可是默认的UITableView中cell之间是没有间隔的,那么办呢?...效果图.png 1、方式一 通过设置cell的contentView来间接实现,在cell的contentView的顶部或者底部留下一定的间距,这样就会有cell间就有间距的效果。...但是这种方式在cell有点击效果的时候,很明显的看出有分层,因为这时候cell是被点击的,contentView都会有系统点击的阴影效果。...这种方式在cell左滑删除,置顶等操作的时候,左滑出的视图高出一部分(左滑显示出的高度=(cell的高度-留下的间距高度)+ 留下的间距高度),很显然这种方式有致命缺陷。...圆角矩形cell.png PS:这种方式不适合有编辑的情况,因为在编辑的时候不停调用setFrame方法,导致错乱,此时建议使用上面的第二种方案。

1.3K61

优雅的处理网络数据,你真的吗?不如看看这篇.

但是,当需要显示大量数据时,确保平滑如丝的滚动可能非常的棘手。所以今天正好趁这个机会,和大家分享一下处理大量可滚动数据方面的个人经验。...或者 UICollectionView 控件继续加载这些数据并显示给用户,效果如下图所示: image 在这种情况下就造成了一种现象,那就是 App 向服务器请求数据到数据返回这段时间留下了一个空白...,如果在网络差的情况下,这段空白的时间将会持续,这给人的体验很不好。...UITableView 的行数并 Reload,那我之前说的 Prefetching API 在这种情况下就失去作用了,因为它起作用的前提是要保证预加载数据时 UITableView 当前的行数要小于它的总行数...*)tableView cancelPrefetchingForRowsAtIndexPaths:(NSArray *)indexPaths; @end 第一个函数基于当前滚动的方向和速度对接下来的

1.4K20

Swift - MJRefresh库的使用详解1(配置,及库自带的下拉刷新组件)

其内容如下: #import "MJRefresh.h" 2,使用样例 下面给 tableView 添加一个下拉刷新功能,每次下拉随机生成10条数据,并刷新表格。...(生成随机数据的时候等待2秒,模拟网络请求)。具体效果图如下: ? 5815fb4e8c590.png (1)对于下拉的响应事件,我们可以通过设置其 target action 来关联。...显示刷新的状态提示文字,刷新时间,左侧还有箭头或环形进度条表示刷新状态。 ? 5815fb4e8c590-1.png 2,隐藏时间 ?...5815fb4e7530d.png //隐藏时间 header.lastUpdatedTimeLabel.isHidden = true 3,隐藏所有的文字 下面把时间和状态文字都给隐藏掉。 ?...5815fb4eb7461.png //隐藏时间 header.lastUpdatedTimeLabel.isHidden = true //隐藏状态 header.stateLabel.isHidden

5.6K31

【IOS开发基础系列】Table View开发专题

默认顶部有空白 解决方法:         在当前VC中设置:         self.edgesForExtendedLayout = UIRectEdgeNone; 2.2.6 自定义UITableViewCell...多余分割线         看了好多东西,觉得隐藏多余的分割线,基本两个各思路,一个是通过代码,一个是代码配合背景图片。         ...主要就是说自己定义一个view,弄成透明的,然后盖在TableView的上部和下部,这样就“隐藏”了。...如果你的table cell包含图片,且数目较多,使用默认的UITableViewCell非常影响性能。奇怪的是,使用自定义的view,而非预定义的view,明显快些。...这里面还有一个学问,当下载线程数超过2时,显著影响主线程的性能。

32520

【技巧】ionic3的小彩蛋

ionic里面有不少彩蛋——就是官网没有说明,但是可以用的,因为一段时间没用ionic做项目,所以一时想不起来,先列几个: 一、众所周知的 软键盘出现搜索按钮 form标签包含ion-searchbar...解决非交互组件的点击延时 这类组件也是可以响应点击事件的,只是因为要判断是否有后续响应(如判断是否双击),会有几百ms的延时,这时加上tappable即可 二、较为隐藏的 输入框内容支持复制黏贴...我们只要取现有样式名,换掉后缀,并添加即可,如ios平台ion-checkbox会生成checkbox-ios样式,一般只需给该控件加上checkbox-md类名即可变成android风格,因为它一般覆盖原来的平台的样式..._beginRefresh(); } input相关组件的隐藏事件 像ion-searchbar、ion-input、ion-textarea等,都是有ionBlur、ionFocus、ionChange

63350

iOS学习——tableview中带编辑功能的cell键盘弹出遮挡和收起问题解决

文本框调用其代理的textFieldShouldBeginEditing:  方法来允许或阻止其第一响应者,并控制是否对文本框进行输入 成为第一响应者,对应的相应事件就是系统调用键盘(自动弹出),并且系统根据需要发出.../完成】按键的效果  在文本框输入即将结束,即即将注销第一响应者时,系统会调用 textFieldShouldEndEditing: 方法 文本框注销第一响应者,对应的响应时间就是系统收回键盘,并且在隐藏键盘时会发出..., nonatomic) BOOL isForbidEdit; //是否允许编辑 @property (assign, nonatomic) BOOL isHiddenLine; //是否隐藏分割线...CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size; //判断键盘弹出是否遮挡当前编辑...if (offSet > 0.01) { WEAKSELF //有遮挡时,tableview需要的偏移量应该是在原先的基础上再往上上移的,这里我们默认增加10个单位的空白

3.9K80

提升UITableView性能-复杂页面的优化

之前的做的项目,青桔音乐iOS客户端里面的首页就是一个类似微信朋友圈的“动态”页面,大致如下: 青桔动态页面 如果是你,你怎么实现这个页面呢?...所以,我们完全可以只创建一种Cell,虽然这样一个Cell的“体积”可能很大,但是介于Cell的数量不会很多,所以完全可以接受。...善用hidden隐藏(显示)Subview 既然只定义一种Cell,那该如何显示不同类型的内容呢?...毕竟,在用户快速滑动中,只是单纯的显示、隐藏subview比实时创建要快得多。...= 首先要确定的是,在iOS中,系统先调用“tableView:heightForRowAtIndexPath:”获取每个Cell即将显示的高度,从而确定整个UITableView的布局。

1K50

iOS页面间传递消息之Delegate

回想一下,在使用列表,也就是UITableView的时候,除了创建这个列表对象,还会用到UITableView Datasource和UITableView Delegate。...当我们要设置点击列表行的相应时,就要用到UITableView Delegate的方法,这里要讲的,跟这个是同一个东西。 先看一个效果: 在主界面有一个按钮和一个方块,方块原本是隐藏的。...这个协议由子界面定下规矩,比如点击显示方块的按钮如何,点击隐藏的按钮又会如何。任何界面都可以声明我要遵循子界面的这个协议。...这个例子中就仅仅是不包含信息的信号,比如要显示方块的信号和要隐藏方块的信号。...和使用UITableView对象时的做法一样,在.m文件的开头表示一下就好: // 遵循子界面的协议 @interface ViewController ()<SecondViewControllerDelegate

71630

IOS学习——iphone X的适配

的header高度变大,有的地方会出现空白cell格 UITableview出现的位置不对 某些控件的相对位置不对   粗略发现这些变化问题之后,思考一下,主要问题分为两类:一是iPhone X的屏幕尺寸变化带来的变化...这也就是为什么我们的返回键的位置右移的原因了。   ...UITableview的header高度变大,有的地方会出现空白cell格   iOS 11中对UITableview的改变也是蛮大的,原本的automaticallyAdjustsScrollViewInsets...所以出现空白cell格的原因应该就是缺少footer的height和view函数,加上就没什么问题了。这个就不放图了,很简单   5. ...UITableview出现的位置不对   和问题4中的问题一样,都是UITableview的问题,主要原因还是iOS 11中automaticallyAdjustsScrollViewInsets过期了

1.5K60

埋点统计~~从UITableView数据曝光说起

然鹅这些粗粒度的统计产品往往不能全面很好的辅助互联网公司做好用户采集和建立用户画像模型,因此有条件的公司内部会做自己的用户行为埋点统计,打造一套自己的用户行为分析平台…… 数据埋点采集对产品的意义 UI控件在iOS移动端承载这丰富的信息输出,用户在使用浏览中会留下丰富的数据采集信息...A用户慢慢的逐条浏览呈现的产品 B用户往往快速滑动进行浏览 C用户快速的翻页进行浏览 上面的三种用户基本涵盖了这个UII所能涵盖的大部分用户行为,伴随着产生的用户行做分析采集即可分辨出用户的兴趣点...产品的曝光度 用户对商品的兴趣等一系列 UITableView数据条目曝光 UITableView中用户浏览到的商品条目 怎么定义这个浏览到的产品呢?...目前可以这么定义---当页面滑动结束或首次加载完成时呈现给用户的所有商品均算是曝光 UITableView中用户浏览中略过的商品条目 这个就有意思了,用户在快速浏览中可能快速滑动翻页,更有甚者直接快速滑动之后让列表自己滑动...,UI在阻尼情况下慢慢自动静止,那么这被用户快速划过忽略的就是商品条目就是产品中没有曝光的数据。

1.4K32

在iOS中怎样创建可展开的Table View?(下)

(上) 展开和合拢 我猜这部分可能是你最期望的了,因为本次教程的目标将会在在部分实现.第一次我们设法让顶层的cell,在它们点击的时候展开或者合拢.以及显示或者隐藏合适的子cell....我们不应该忘记这一点:如果你再调用,有一个指定cell是否应该显示的属性,即"isVisible",以及存在每一个cell的描述.这个属性必须根据上面的flag来改变,所以的添加的不可见cell当它展开的时候,变为可见的...,当cell合拢的时候,优惠变为隐藏.实际上,通过改变那个属性的值,我们实际上实现了打开的效果(或是合拢的效果).所以,让我们修改上面的代码: func tableView(tableView: UITableView...Preferences"组里,列出了最喜欢的运动和颜色的cell.尽管我已经提到它了,我想那是一个好的想法,刷新我们的内存,并且再说一遍,当一个cell被点击的时候,我们希望各自的顶层cell合拢(以及隐藏选项...(例如,将cell描述列表保存到文件),然而,那已经超出了我们的目标;我们最开始所想的是实现一个可展开的tableView,根据需求显示或隐藏cell,以及我们最终所做的.我相信,在这篇教程中你找到左右有用的信息

1.5K30
领券