10

CGAffineTransformMakeScaleを使用してUIViewを0(幅と高さは0)にスケールダウンすることは可能ですか?

view.transform = CGAffineTransformMakeScale(0.0f、0.0f);

なぜこれは""のエラーをスローするのでしょう<Error>: CGAffineTransformInvert: singular matrix.か?



更新:UIViewを0にスケールダウンする別の方法があります

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.3]; 
view.frame = CGRectMake(view.center.x, view.center.y, 0, 0);

[UIView commitAnimations];
4

3 に答える 3

10

基礎となるフレームワークが変換行列を逆にする必要がある場合がよくあります。行列の逆行列は、行列 M と逆行列 M' の積が行列 1 を特定するような行列 M' です。

1 = M * M'

ゼロ行列には逆行列がないため、エラー メッセージが表示されます。

于 2008-10-19T12:59:49.680 に答える
8

これが可能かどうかはわかりません。ゼロ除算の問題が発生し始めます。これを行おうとすると、次のような変換が作成されます。

   0  0  0
   0  0  0
   0  0  1

他の変換に適用すると、上記の変換が生成されます。

ビューを非表示にしたり (見えないように拡大したい場合)、倍率を 0.001 などに設定したり (拡大したい場合) しないのはなぜでしょうか?

于 2008-10-19T11:55:07.753 に答える
1

あなたが試すことができます:

CGAffineTransform transform = myView.transform;
myView.transform = CGAffineTransformScale(transform. 0.0f, 0.0f);

または全体をインライン化します。

于 2011-10-23T21:32:43.200 に答える