【问题标题】:Restrirct Boundary 320 x 480, while scaling UIImage限制边界 320 x 480,同时缩放 UIImage
【发布时间】:2011-08-09 15:28:22
【问题描述】:

我正在做室内装饰应用,我们可以在相机屏幕上添加沙发、桌子、椅子台灯,然后可以通过触摸缩放 UIImage 来缩放图片。但是通过缩放我们不想增加 UIImage Size 大于 320 x 480,我的意思是想限制在 iphone 边界。

任何建议,我已经实施并尝试过,但无法获得确切的解决方案。我曾经检查中心的基础,但这种方法不起作用,想要像边缘检测这样的东西可能是准确的解决方案,

谢谢,期待

这是我用来调整 UIImageView 大小的一些代码

-(BOOL)isValidSizeForView:(UIView *)myView forSize:(CGSize)size
{
    BOOL Decision = NO;

    CGRect rect = myView.frame;

    CGRect BoundRect = CGRectMake(0, 0, 320, 480);

    float MinX = (BoundRect.origin.x+(myView.frame.size.width/2));

    float MaxX = ((BoundRect.origin.x+BoundRect.size.width)-(myView.frame.size.width/2));

    float MinY = (BoundRect.origin.y+(myView.frame.size.height/2));

    float MaxY = ((BoundRect.origin.y+BoundRect.size.height)-(myView.frame.size.height/2));

    if(rect.origin.x > MinX && rect.origin.x< MaxX && rect.origin.y> MinY && rect.origin.y<MaxY)
    {
        Decision = YES;
    }
    else
    {
        printf(":( no sorry \n");
    }

    return Decision;
}

【问题讨论】:

  • 如何缩放该图像?粘贴一些代码...
  • 以上是我如何限制边界的代码,请通过它并提出建议。

标签: iphone objective-c xcode


【解决方案1】:

您可以通过执行以下操作获得图像的最大缩放尺寸:

- (CGSize)zoomedSizeForImage:(UIImage *)image constrainedTo:(CGSize)maxSize {
    CGFloat width = image.size.width;
    CGFloat height = image.size.height;
    if (width > maxSize.width) {
        width = maxSize.width;
        height = height * maxSize.width / width;
    }
    if (height > maxSize.height) {
        width = width * maxSize.height / height;
        height = maxSize.height;
    }
    return CGSizeMake(width, height);
}

【讨论】:

  • 非常感谢您的回复,这段代码很好,除非我们不使用 UITouch 调整图像大小。但是当我们使用 Touch 缩放/调整 UIImage 大小时,我们无法将其限制在边界内,尽管 touch 会出现异常。有什么建议吗??
  • 我不确定我是否理解这个问题。在我看来,您可以检查touchesEnded:withEvent: 中的大小,如果它大于最大缩放大小,请在动画块中将其缩小。
猜你喜欢
  • 1970-01-01
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多