我的应用中有此搜索栏。请参阅播放,下一个和上一个按钮。
当我搜索并点击搜索项目中的一首歌时,搜索栏的第一响应者会隐藏我的按钮,即播放,下一个和上一个按钮。
我正在使用此代码
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MPMediaItem * song;
_nowPlayingIndex=indexPath.row;
if (tableView == self.searchDisplayController.searchResultsTableView)
song = searchResults[_nowPlayingIndex];
else
song = _songs[_nowPlayingIndex];
[self.musicPlayer setNowPlayingItem:song];
[self.musicPlayer play];
_playButton.hidden=true;
_pauseButton.hidden=false;
[_mySearchBar resignFirstResponder];
}
为什么隐藏我的按钮?
答案 0 :(得分:1)
步骤1:您可以做的是显示和隐藏这些按钮或任何其他项目的不同功能。
步骤2:然后,您可以在需要的地方调用这些功能。例如每次你辞职后都要回应。
步骤3:您可以尝试将表格视图框架设置为距离代码较低的高度。然后测试这个东西。因为我认为桌面视图的高度会导致隐藏这些按钮
例如[self.tableView setFrame: CGRectMake(self.view.frame.origin.x, self.searchSong.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height - "button.height" - "navbar.height")];
步骤4:您还应该调试代码,以便执行resignFirstResponder时...请检查按钮的框架是什么。通过这种方式,您将了解自己的位置。
它只是另一种解决问题的方法。如果您仍有疑问,可以提问。我希望它有效。 :)
答案 1 :(得分:1)
这就是我要找的东西
- (void)searchDisplayController:(UISearchDisplayController *)controller didShowSearchResultsTableView:(UITableView *)tableView{
CGRect tableFrame= self.searchDisplayController.searchResultsTableView.frame;
tableFrame.size.height=200;
tableFrame.size.width=300;
[self.searchDisplayController.searchResultsTableView setFrame:tableFrame];
[self.searchDisplayController.searchResultsTableView reloadData];
}
和[[myButton superview] bringSubviewToFront:myButton];把它们带到前面。
答案 2 :(得分:0)
当您搜索任何内容时,将代码应用于您的按钮是搜索代理
[grayBar bringSubViewToFront];
或
[yourButton1 bringSubViewToFront];
[yourButton2 bringSubViewToFront];
[yourButton3 bringSubViewToFront];
希望这会有所帮助