2011-08-09 7 views
1

私はインテリアデコレーションアプリケーションに取り組んでいます。私たちはSofa、Table、Chair Table Lampをカメラ画面に追加し、タッチでUIImageを拡大してズームすることができます。しかし、ズームすることで、UIImageのサイズを320x480より大きくすることは望ましくありません。つまり、iphone境界で制限したいということです。Restrirct Boundary 320 x 480、Scaling UIImage

私は実装して試しましたが、正確な解決策を得ることはできませんでした。私は中央のベースにチェックするために使用しますが、このアプローチは、それは正確な解決策になるかもしれエッジ検出のようないくつかのことをしたい、

すでにおかげで作業を転送し、ここで

を見ていないが、私が使用していますいくつかのコードです

-(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

を私のUIImageViewのサイズを変更するためにあなたがこのような何かを行うことによって、あなたのイメージのために最大ズームサイズを得ることができます:

- (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