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 に答える