0

UItableviewfooter として UIActivity インジケーターを使用しています。私のコードはここに表示されます

spinner = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
 spinner.frame=CGRectMake(0, 0, 310, 44);
[spinner startAnimating];

self.myTableView.tableFooterView=spinner;

これはシミュレーターでは非常にうまく機能しますが、デバイスで実行すると、セルの寸法に従ってアクティビティインジケーターが両方の軸で引き伸ばされているように見えます。

4

1 に答える 1

4
spinner.frame=CGRectMake(0, 0, 310, 44);

おそらく、アクティビティ スピナーの幅を 310 ポイントに設定しているためです。代わりに、44 に設定し (フレームを正方形にするため)、x 原点パラメータを調整して中央に配置します。

現時点ではこれをテストすることはできませんが、おそらく次の形式になるでしょう。

CGFloat activityWidth = 44;
CGFloat activityHeight = 44;
CGFloat tableFooterViewWidth = self.myTableView.tableFooterView.frame.size.width;

spinner.frame=CGRectMake(tableFooterViewWidth - (activityWidth/2),
                         0,
                         activityWidth,
                         activityHeight);
于 2012-10-24T13:53:29.190 に答える