ビューの「ズームイン」を模倣したいと思います。大きい方のビューは小さい方のビューのスーパービューにサブビューとして追加され、大きい方のビューは小さい方のビューからズームインしているかのように見えます。小さい方のビューの長方形とfromRect
拡大された大きい方のビューの最後のフレームをfinalRect
考えると、適切な変換は何でしょうか?
メソッドのシグネチャはview
、スーパービューであるため、次のようになると思います。私は自分自身を助けるためにこれを書きましたが、まだそれを理解することはできません。
-(CGAffineTransform) translatedAndScaledTransformUsingViewRect:(CGRect)viewRect fromRect:(CGRect)fromRect inView:(UIView*) view
{
//calculate the scaling based on the final frame of viewToBeStretched (viewRect) vs the "fromRect"
CGFloat scaleX = ?, scaleY = ?;
CGAffineTransform scaleTransform = CGAffineTransformMakeScale(scaleX, scaleY);
//use translation instead of modifying the view's center, since frame changes with transforms are no good
CGFloat translationX = ?, translationY =?;
CGAffineTransform translationTransform = CGAffineTransformMakeTranslation(translationX, translationY);
CGAffineTransform final = CGAffineTransformConcat(scaleTransform, translationTransform);
return final;
}