gpt4 book ai didi

iphone - 平移后 UIImageView 质量下降?

转载 作者:行者123 更新时间:2023-11-28 20:40:17 25 4
gpt4 key购买 nike

这是一个非常非常微妙的效果,但我注意到我的 UIImageView 图像在被拖来拖去后变得有点模糊。

我只是使用 UIPanGestureRecognizer 在屏幕上移动它,并在它移动时影响 alpha(为了 UI 效果在四处拖动时使其更亮)。

有没有人知道为什么它会损失一些图像质量并变得有点模糊?

-(void)handlePan:(UIPanGestureRecognizer *)recognizer{
self.alpha = 0.7;
CGPoint translation = [recognizer translationInView:self.superview];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.superview];

//make the sprite slide on release
if (recognizer.state == UIGestureRecognizerStateEnded){
self.alpha = 1.0;
CGPoint velocity = [recognizer velocityInView:self.superview];
CGFloat magnitude = sqrtf((velocity.x * velocity.x) + (velocity.y * velocity.y));
CGFloat slideMult = magnitude/200;

float slideFactor = 0.01 *slideMult; //increase for more slide
CGPoint finalPoint = CGPointMake(recognizer.view.center.x + (velocity.x *slideFactor), recognizer.view.center.y + (velocity.y * slideFactor));

finalPoint.x = MIN(MAX(finalPoint.x, 0), self.superview.bounds.size.width);
finalPoint.y = MIN(MAX(finalPoint.y, 0), self.superview.bounds.size.height);

[UIView animateWithDuration:slideFactor*2 delay:0 options:UIViewAnimationOptionCurveEaseOut animations:^{recognizer.view.center = finalPoint;}
completion:nil];

*编辑:我认为这与状态结束时的滑动效果有关。

最佳答案

如果您的 imageView.frame.origin 位于像 (6.66666, 7.55555) 这样的分数上,图像可能会模糊。这只是简单的像素对齐。

在您的平移代码中,使用 CGRectIntegral 对齐整数,如下所示:

panningImageView.frame = CGRectIntegral(panningImageView.frame);

如果您需要不同的舍入行为,还有其他选项,例如 roundf()、ceilf() 和 floorf()。

关于iphone - 平移后 UIImageView 质量下降?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8844092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com