我有一个 UITableView,侧面有一个索引;我想向其中添加一个 UISearchBar,但索引与“x”重叠以清除搜索。我注意到在“联系人”应用程序中,UISearchBar 中的文本字段已调整大小以适应这一点,但我无法弄清楚如何在我自己的应用程序中执行此操作。
我在 viewDidLoad 中尝试了以下操作,但似乎不起作用。
UITextField * textField = (UITextField *)[[self.search subviews] objectAtIndex:0];
CGRect r = textField.frame;
[textField setFrame:CGRectMake(r.origin.x, r.origin.y, r.size.height, r.size.width-30)];
有任何想法吗?
它比所有这些建议容易得多。在界面生成器中,您可以放置一个视图,而不是将搜索栏作为表视图的标题。然后,在该视图中放置一个导航栏。抓住导航栏左侧的大小调整手柄并将其向右拉,直到 NB 仅 25 像素宽。清除NB中的标题(双击选择它,然后删除)。然后,将搜索栏添加到同一视图中。将右侧大小调整手柄向左移动,调整使其紧靠 N B。就这样。
如果您愿意,您也可以启用取消按钮,并且它也不会与索引重叠(保留在搜索栏中)。
显然,表视图的标题中只能有 1 个子视图,这就是为什么您需要将视图放在前面,然后将 N B 和搜索栏放在其中。
更新:请参阅 Apress 的《开始 iPhone 开发》,第 14 页。 SDK 3 版本的 241。您只需在搜索时禁用索引即可。
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
if (isSearching) {
return nil;
}
return keys;
}
他们还谈到在索引顶部添加一个放大镜。
到处都是很棒的书。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)