UIImageView在淘汰后失去质量?
这是一个非常非常微妙的效果,但我注意到,我的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)这样的分数,图像可能会模糊。 这只是简单的像素alignment。
在你的平移代码中,使用CGRectIntegral来像这样alignment整数:
panningImageView.frame = CGRectIntegral(panningImageView.frame);
还有其他选项,如roundf(),ceilf()和floorf(),如果你需要不同的舍入行为。
- 错误:“expression式的types不明确,没有更多的上下文”
- 导致UISearchBar崩溃的自定义UITableViewCell
- Autoresizingmask立即覆盖最初设置的框架(创build一个不同的和错误的布局)
- 使用Microsoft Windows在iPhone上测试和开发iOS应用
- 检测UILabel文本中的更改
- 从付费到免费w / IAP:防止双重收费
- 我是否必须在其didFinishWithResult委托方法中解除MFMessageComposeViewController?
- 有没有办法将导航栏中的标题更改为斜体,粗体和下划线,而不更改字体?
- 我试图使用NSHost和XCode没有认出它