1

UITextFieldアニメーション ブロックで が動いているときに表示されるアーティファクトについて質問があります...

移動する前はUITextField、次のようになっています。

シフト前の UITextField

そして、このように移動した後:

シフト後の UITextField

私の推測では、UITextFieldシフト後のフォントと関係があると思います。


移動に使用するコードは次のUITextFieldとおりです。

if (answerText.editing)
{
    [UIView beginAnimations:@"Moving UITextField" context:nil];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDuration:1.0];
    movingAnswer = CGPointMake(160,75);
    answerText.center = movingAnswer;
    [UIView commitAnimations];
}
4

1 に答える 1

1

結果のフレームが偶数の整数に整列されていない可能性があります。つまり、その量を移動すると、フレームが (100.5、50.0、50.0、50.0) のようになります。ハーフ ピクセルの境界線で描画する場合、一部の描画ルーチンでは、オブジェクトがぼやけて見えるようにして、正しい場所に表示されるようにします。アニメーションの後にフレームを印刷して確認します。

NSLog(@"%@", NSStringFromCGRect(movingAnswer.frame));

整数以外の値が表示された場合は、floor() 関数の 1 つを使用して結果のフレームを変更し、境界にスナップします。

于 2012-04-21T21:02:59.730 に答える