2009-03-21 13 views
1

私はカスタムセルでテーブルビューを使用しており、ボタンクリックでテーブルビューの内容を変更したいと考えています。セルがデータをロードしている間、私はアクティビティインジケータを使用しています。iPhone - initWithFrameはUIActivityIndi​​catorViewでは機能しませんか?

は、これは私が

indicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(141.0, 190.0, 37.0, 37.0)]; 
indicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyleWhite; 
indicator.hidesWhenStopped = YES; 
[[self tableView] addSubview:indicator]; 

は、しかし、それはフレームがインジケータには影響しないかのように表示されますindicatorviewを作成しています方法です。テーブルの中央に表示する代わりに、インジケータが表示され、ビューの左上隅のナビゲーションバーに表示されます。

私は何が間違っているのか、なぜこれが起こっているのかは分かりません。誰かが私を助けてくれますか? alt text http://www.freeimagehosting.net/uploads/95cbe49850.png

答えて

8

initWithFrame:は、UIActivityInidcatorを作成するための推奨方法ではありません。 APIを見てみると、あなたはUIActivityIndicatorを作成することを確認することができ、次に、あなたのビューに追加し、パブロによって示唆されているようにsetCenter:でその位置を設定

[[UIActivityIndicator alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; 

を使用する必要があります。

また、テーブルビューの場所に追加すると、ユーザーがスクロールしたりスクロールしたりすると、テーブルとともにスクロールします。代わりにテーブルのスーパービューに入れると、それはそのまま残ります。

+0

initWithFrameを使用して任意のコントロールを初期化することができます。 – lostInTransit

+0

はい、その理由があります。しかし、別のinitWith ...:が提供されている特定のコントロールのための提案されたメソッドではありません –

6

これを試してみてください:

activityIndicator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 32.0f, 32.0f)]; 
    [activityIndicator setCenter:CGPointMake(160.0f, 208.0f)]; 
    [activityIndicator setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray]; 
    [activityIndicator startAnimating]; 

setCenterに呼び出すと、あなたが期待している動作を与える必要があります。

幸運を祈る!

+0

これを試しました。それでもナビゲーションバーでそれを取得します。参照用の画像を追加する – lostInTransit

関連する問題