tableview和searchbar的适配

iOS7中,如果用UITableViewStyleGrouped的话,里面的 cell会比原来的拉长了,这样做应该是为了统一和UITableViewStylePlain风格时cell的大小一致,所以改用UITableViewStylePlain后,就没问题了,而且在iOS7中,使用UITableViewStyleGrouped风格时,上面会出现 headView ,大概占了35个像素,使用 UITableViewStyleGrouped 风格的朋友们注意了,如下图为使用UITableViewStyleGrouped时的差异:

图1-1

还有就是iOS7下的UITableView增加了一个 UITableViewWrapperView 子视图,UITableViewCell变成了UITableViewWrapperView的子视图,而在iOS6中,UITableViewCell是UITableView的子视图。

用代码表现出来就是:


1

2

3

UITableView *tableView = (UITableView *)cell.superview.superview;//in iOS7

UITableView *tableView = (UITableView *)cell.superview;//in iOS6

如果之前定制cell的时候,用下面代码取tableView的需要做适配了。


1

UITableView *tableView = (UITableView *) self .superview;

还有就是现在可以直接设置 UITableView的背景颜色 了:


1

_loginTable.backgroundColor = [UIColor redColor];

另一个问题就是我使用 UISearchBar 的时候,Apple在iOS7中也做了调整。如下图:

图1-2

相信很多人在使用UISearchBar的时候,都比较喜欢上面的那种去了背景色的样子,在iOS6中我是使用下面这种方式去除背景色:


1

2

3

4

5

6

7

8

9

10

11

12

//for iOS6

for (UIView *subview in  self .search.subviews) {

     if ([subview isKindOfClass: NSClassFromString (@"UISearchBarBackground" )]) {

         [subview removeFromSuperview];

         break ;

     }

}

而今天突然发现,纳尼,在iOS7中,搜索框消失了,用小伙伴的方法看了一下,原来视图树改变了。如下图:

在iOS7中,UISearchBar的子视图变成一个UIView,所以原来的方法不管用了,但是看了一下文档,在iOS7中新增了一个barTintColor的属性,我们可以设置barTintColor 为clearColor,便得到图1-2中的效果。


1

2

3

4

5

6

7

//for iOS 7

if ([ self .search respondsToSelector: @selector(barTintColor)]) {

[ self .search setBarTintColor:[UIColor clearColor]];

}

至此,目前我在适配iOS7的时候,就遇到这两个问题,写出来,分享给大家。

今天看到一个笑话,快笑得不能自已了:

为什么练葵花宝典一定要先自宫?

网友答复:练成神功后,绝对会屌爆了,所以要先防患于未然。O(∩_∩)O~

tableview和searchbar的适配,布布扣,bubuko.com

时间: 2024-10-12 20:23:28

tableview和searchbar的适配的相关文章

tableView加searchBar,以搜索通讯录为列

使用的是storyBoard 1拖一个UISearchDisplayController到tableView的headerView上,并声明成全局变量 @property (strong, nonatomic) IBOutlet UISearchDisplayController *searchDispalyController; @property (weak, nonatomic) IBOutlet UISearchBar *searchBar; @property (nonatomic,

uisearchDisplayController放在tableview里下拉刷新状态出现遮挡

代码如下 - (void)viewDidLoad { [super viewDidLoad]; UISearchBar * searchBar =[[UISearchBar alloc]initWithFrame:CGRectMake(0, 0, 320, 44)]; self.tableView.tableHeaderView=searchBar; self.searchController =[[UISearchDisplayController alloc]initWithSearchBa

表视图搜索栏

一.效果 1. 启动程序:上面搜索栏.右边索引条 2. 点击表单元有警告框提示 3. 点击搜索栏输入内容可根据长短范围搜索 二.分析 1. 创建一个表视图,指定委托,实现表单元的显示 2. 创建一个显示搜索结果的模型,该模型也是表视图,遵循搜索结果更新协议,作为更新器 3. 创建一个搜索控制器,指定搜索结果控制器,并创建搜索栏,让搜索结果控制器实现同步更新协议,让搜索到的内容得以在搜索结果中更新 4. 在更新协议实现方法中配置搜索的逻辑 三.实现 1. 实现文件 2. Main.storyboa

UIView---汇总

视图.绘图.贴图.手势.变形.布局.动画.动力.特效 UIBezierPath.UIGestureRecognizer.CGAffineTransform.frame.bounds.center.transform.UITouch.UIEvent.Layout.Autoresizing.Auto Layout.Animation.UIImage.NSTimer.UIView.Core Animation.CALayer.CAAnimation.CABasicAnimation.CAKeyfram

ios UISearchDisplayController 实现 UITableView 搜索功能

UISearchDisplayController 是苹果专为 UITableView 搜索封装的一个类. 里面内置了一个 UITableView 用于显示搜索的结果.它可以和一个需要搜索功能的 controller 关联起来,其它的像原 TableView 和搜索结果 TableView 的切换, mask 的显示等等都 封装好了,使用起来非常非常的简单.特别是要实现全屏搜索时使用最多. 全屏搜索的意思是如果你用了  NavigationBar 当点击搜索框时 TableView 会自动弹上去

IOS总结(学习过程中整理的笔记)

MVC模式:(model+view+controller):是一种帮你把代码功能和显示划分出来的设计模式: model:较为底层的数据引擎,负责管理实体中所继承的数据: view:和用户交互界面: controller:连接二者的桥梁: cocoa frameworks 有两个框架: foundation foundation  是cocoa中最基本的一些类:再mac应用程序中负责对象管理,内存管理,容器等相关数据: uikit: uikit:为程序提供可视化的底层构架,包括窗口,视图,控件类和

会员中心选项添加提示信息

又是Mat的IOS开发任务, 这次是会员中心选项的Label显示异常. 适配问题, 上次写的是根据屏幕判断位置, 但这样不是最有效的, 最有效的方式是根据Item的位置放置提示信息. 同时适配iPhone6和iPhone5s. 完成的效果 设置UserCenter600Item类 @interface UserCenter600Item : CYTableItem ... @property (nonatomic) BOOL isMember; // 是否会员 @property (nonato

UITableView用法整理

UITableView是最常用的控件,这里整理下常用方法,outline如下(本文参考http://www.cnblogs.com/kenshincui/p/3931948.html,代码下载地址为https://github.com/zanglitao/tableviewdemo) 1:基本介绍 2:数据源 3:代理 4:修改,删除,添加和排序 5:背景view 6:自定义cell 7:UITableViewController 8:UISearchdisplayController 9:下拉

iOS中的2中搜索方式UISearchDisplayController和UISearchController

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 以前iOS的搜索一般都使用UISearchDisplayController来完成,不过自从iOS 8.0开始,该控制器被标记为废弃,我们可以在iOS 8.0之后使用一个新的搜索控制器UISearchController来完成搜索. 本篇博文将介绍以上2种搜索控制器的简单用法,并比较它们的区别.Let't Go! UISearchDisplayControll