3

我的应用中有这个搜索栏请查看播放、下一个和上一个按钮。

当我从搜索项中搜索并单击一首歌曲时,搜索栏的第一响应者会隐藏我的按钮,即播放、下一个和上一个按钮。

我正在使用此代码

 - (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];

}

为什么我的按钮被隐藏了?

4

3 回答 3

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 时调试代码……请检查按钮的框架。这样你就可以了解他们的立场。

它只是解决您的问题的另一种方式。如果你还有问题,你可以问。我希望它有效。:)

于 2013-08-26T11:07:46.520 回答
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]; 把他们带到前面。

于 2013-08-26T12:04:34.710 回答
0

当您搜索任何内容时,将代码应用于您的按钮是搜索委托

 [grayBar bringSubViewToFront];

或者

 [yourButton1 bringSubViewToFront];
 [yourButton2 bringSubViewToFront];
 [yourButton3 bringSubViewToFront];

希望这可以帮助

于 2013-08-26T12:04:56.773 回答