2011-08-09 35 views
1

我正在室內裝飾應用,我們可以在相機屏幕上添加沙發,桌子,椅子檯燈,然後可以通過觸摸縮放UIImage縮放圖片。但通過縮放,我們不想增加UIImage Size大於320 x 480,我的意思是想限制在iphone邊界。restrirct邊界320 x 480,同時縮放UIImage

任何建議,我已經實施和嘗試,但不能得到確切的解決方案。我用它來檢查中心的基礎,但這種方法是行不通的,要像邊緣檢測的一些事情可能會是精確解,

已謝謝,向前看

這裏是一些代碼,我使用調整我的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; 
} 
+0

如何擴展該圖像???粘貼一些代碼... –

+0

以上是代碼我如何限制邊界,請通過它並建議。 –

回答

0

你可以做這樣的事情讓你的圖像的最大縮放大小:

- (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); 
} 
+0

我真的很感激你的回覆,這段代碼沒問題,除非我們不用UITouch調整圖片大小。但是當我們使用Touch來縮放/調整UIImage的大小時,雖然觸摸變得異常,但我們不能將其限制在邊界內。任何建議? –

+0

我不確定我是否認同這個問題。在我看來,您可以在'touchesEnded:withEvent:'中檢查大小,如果大於最大縮放大小,則將其縮小到動畫塊中。 – cduhn