0

ビューに追加した 2 つの UIButtons があります

[self.view addSubview:button1];
[self.view addSubview:button2];

これらのボタンにはセレクターがあり、セレクターにはユーザーがオプションを選択できるメニューがあり、このオプションはボタンの文字列サイズが異なる可能性があるため、ビューからボタンを削除し、異なる文字列サイズとボタンで再度リロードすることにしましたサイズ。API 呼び出しから情報を取得しているので、ビューにボタンを設定する場所があります。私はこれをやろうとしました:

[button1 removeFromSuperview]; 

また試しました:

[self.button1 removeFromSuperView];

ここで、UILabel については、文字列が長く、detailTextLabel をカバーしているため、テーブル ビュー セル内に配置します。セルに UITableViewCellStyleValue1 を使用しています。NSLineBreakByWordWrapping を使用して、numberOfLines を 0 と 5 に設定しようとしたので、テーブル ビュー セル内に UILabel を追加して、文字列の移動距離を制御し、それをラップすることもできます。テーブル ビューのセルが非表示になるたびにセルがラベルを何度も書き込んでいたため、if(cell == nil) ステートメント内にラベルを作成することにしました。ボタンと同様に、このラベルもボタンを押すと更新されます。が押されてメニューオプションが選択されたので、ボタンと同じようにビューから削除する必要があります。何らかの理由で機能していません。考え/アイデア/提案はありますか?

NSLog(@"%@",[button1 superview]) 削除した後、ボタンがラベルと同様に実際に(null)であることを確認し、端末にnullとして表示されますが、ボタンは重なっています実際、古いボタンは引き続きクリックでき、新しいボタンの下に表示されます。ラベルも同様です。コードが必要な場合はお知らせください。この問題は私をとてもイライラさせます!

また、私は iOS7 を使用していますが、何らかの理由でデバイスにステータス バーが表示されません。info.plist -> status bar スタイル内で変更しようとしました。3つのオプションを試しましたが、どれも機能していないようです。すべての xib ファイルをチェックし、.m ファイルに隠しキーワードがないかチェックしました。前もって感謝します。

4

2 に答える 2

2

ボタンが API 呼び出しを行っているとおっしゃっていたので、コードのそのセクションをスレッド化しているのではないかと推測しています。その場合、バックグラウンド スレッドで UI を更新することが許可されていないため、機能しない可能性があります。

置き換えてみてください:

[button1 removeFromSuperview];

これとともに:

[button1 performSelectorOnMainThread:@selector(removeFromSuperview) withObject:nil waitUntilDone:NO];

于 2013-09-20T03:46:54.157 に答える