我有一个应用程序,其中UITableView
的部分可以通过sectionIndexTitlesForTableView:
在侧面滚动。
在tableHeaderView
的{{1}}中,我想添加一个UITableView
,我想表现得像苹果公司在iOS7的新联系人应用中使用的那样。但我似乎无法让它发挥作用。
搜索栏不是屏幕宽度的100%,而是右侧与节索引相对应。
我的问题是:
UISearchBar
的{{1}}具有可见的部分索引,我如何将搜索栏的宽度设置为100%?我已经尝试了几件事,包括在导航栏中添加搜索栏,并使用tableHeaderView
,但我无法在Apple网站上找到有关如何创建此文档的详细文档。此外,从iOS6到iOS7的过渡指南对我来说没有什么帮助。
以下两张图片说明了我的问题:
答案 0 :(得分:5)
Apple与他们的应用程序的方式有两个主要区别,这将解决您的问题。
首先,他们的UISearchBar不是tableView的headerView。它是表格上方的一个单独视图。您需要将UITableViewController更改为UITiewController,其UITableView位于UISearchBar下方。
其次,他们的UISearchBar有一个相关的搜索显示控制器。假设您正在使用故事板文件,它会捆绑在一起 - 只需将UISearchBar添加到搜索显示控制器即可。这将处理状态栏下方的所有转换。
答案 1 :(得分:0)
两件事:
1)将tableView的sectionIndexBackgroundColor
设置为[UIColor clearColor]。
2)实现'viewDidLayoutSubviews'方法来修复UISearchBar的框架
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
CGRect barFrame = self.searchBar.frame;
barFrame.size.width = self.view.bounds.size.width;
self.searchBar.frame = barFrame;
}