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() 函数来修改结果帧,以便将其捕捉到边界。

于 2012-04-21T21:02:59.730 回答