我想使用导航栏中的搜索栏按钮来显示与日历应用中的Apple一样的搜索栏。取消按钮将关闭搜索栏并将导航栏返回到其以前的状态,栏按钮,标题等。
使用iOS 7属性:
self.searchDisplayController.displaysSearchBarInNavigationBar = YES;
将搜索栏放入导航栏就好了。我的问题是试图通过按下条形按钮有条件地显示它。我已尝试从我的按钮动作中触发此行,但没有去。我在searchDisplayController上尝试过setActive:Animated:
self.searchDisplayController.active = YES;
但也没有运气。任何想法或帮助将不胜感激。
答案 0 :(得分:3)
我不确定您是否注意到,但是当您按下搜索图标时,在Apple的日历应用程序中,它会打开一个带搜索栏的新UITableView。如果这是你想要做的,你将创建一个带有UITableView的UIViewController和一个UISearchBar,在tableView中你将过滤内容。
如果我是你,我会隐藏UISearchBar并在需要的时候通过按钮显示它。
这可能也有效。试试吧,让我知道:
在你的viewWillAppear中:
- (void)viewWillAppear:(BOOL)animated {
// scroll search bar out of sight
CGRect newBounds = self.tableView.bounds;
if (self.tableView.bounds.origin.y < 44) {
newBounds.origin.y = newBounds.origin.y + self.searchBar.bounds.size.height;
self.tableView.bounds = newBounds;
}
// new for iOS 7
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:0] atScrollPosition:0 animated:YES];}
现在已隐藏,请在搜索完成后再调用它以隐藏它:
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
[self viewWillAppear:YES];
}
并用按钮显示searchBar,然后:
- (IBAction)displaySearchBar:(id)sender {
// makes the search bar visible
[self.searchBar becomeFirstResponder];
}
答案 1 :(得分:2)
在iOS 8中,您只需提供<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<div id="changeText">Zero</div>
<script type="text/javascript">
var text = ["One", "Two", "Three"];
var counter = 0;
var elem = document.getElementById("changeText");
$(document).ready(function(){ change()});
function change() {
$("#changeText").fadeToggle(3000, 'swing', function(){
if($("#changeText").css("display") == "none")
{
elem.innerHTML = text[counter];
counter++;
if(counter >= text.length) { counter = 0; }
}
change();
});
}
</script>
即可获得与Calendar.app相同的动画。查看Apple的UICatalog示例代码以获取示例。