17

ロード目的のビューに UILabel を追加しています。ただし、追加するとぼやけます。奇妙なことに、UITableViewController の上にロードされるローディング ビューのコードはほぼ同じであり、そこではうまく機能します。しかし、UIViewController の上にあるこれはぼやけています。

これは私のコードです:

float x = (self.view.frame.size.width-20)/2;
float y = (self.view.frame.size.height-70)/2;

// Add loading and sub text
UILabel *loadingText = [[UILabel alloc] initWithFrame:CGRectMake(10, round(y+30), round(self.view.frame.size.width-20), 21)];
[loadingText setTextAlignment:UITextAlignmentCenter];
[loadingText setNumberOfLines:0];
[loadingText setFont:[UIFont systemFontOfSize:17]];
[loadingText setText:NSLocalizedString(@"Please wait...\nWe are processing your request", @"LoadingPage")];
[loadingText sizeToFit];
[loadingText setBackgroundColor:[UIColor clearColor]];
[loadingText setCenter:self.view.center];
[loadingText setTag:2];

[view addSubview:loadingText];
4

3 に答える 3

59

フレームが浮動小数点数を使用しているため、ラベルがぼやけています。

フレームに整数値を強制するには、次のようにします。

[loadingText setFrame:CGRectIntegral(loadingText.frame)];

フレームを構成するすべての値を にキャストすることもできますがintCGRectIntegralすべての作業を行います。

于 2011-11-09T14:33:54.853 に答える
15

float/int の問題とは別にsetShouldRasterize、UILabel の親ビューを呼び出すと、この問題が発生する可能性もあります。

于 2013-05-02T04:51:09.000 に答える
3

以前の回答を使用できなかった人のために、機能をオフにするとメソッドautoresizingmaskが呼び出されることがわかりましたsetShouldRasterize

[loadingText setTranslatesAutoresizingMaskIntoConstraints:NO];

したがって、この行をコメントアウトすると、正しく表示されます

于 2013-05-23T23:13:04.307 に答える