2

ビューのサイズ変更、回転、移動を行う機能を実装する必要があるという要件があります。3つの機能をすべて実装しましたが、過去1週間、1つの問題に苦労していて、解決できませんでした。

CGAffineTransformRotateを適用した後、ビューの右隅をドラッグしてサイズを変更しようとすると、ビューのフレームが予測できない状態になりました。私はこの問題について後で検索しました私は知りました

変換プロパティがID変換でない場合、このプロパティの値は未定義であるため、無視する必要があります。

私が正確に実装したいのと同じ機能を実装した1つのアプリを見ました。そのアプリでは、回転後にビューのサイズを変更できます。

CGAffineTransformRotateを適用した後、ビューの右隅をドラッグしてビューのサイズを変更するにはどうすればよいですか?

私はiOSアプリ開発の経験があまりないので、この問題に1週間苦労しています。誰かが私の問題を解決してくれれば、大いに感謝します。

私のサンプルコード

http://dl.dropbox.com/u/82675151/sampleImgMv2.zip

4

1 に答える 1

2

ドキュメントには明確に書かれています:

**変換プロパティがID変換でない場合、このプロパティの値は未定義であるため、無視する必要があります。

変換プロパティに非ID変換が含まれている場合、フレームプロパティの値は未定義であり、変更しないでください。その場合、centerプロパティを使用してビューの位置を変更し、代わりにboundsプロパティを使用してサイズを調整できます。**

したがって、touchesMovedfrom:で以下の行を変更するだけです。

    testVw.frame = CGRectMake(testVw.frame.origin.x, testVw.frame.origin.y,touchPoint.x + deltaWidth, touchPoint.y + deltaWidth);

に:

    testVw.bounds = CGRectMake(testVw.bounds.origin.x, testVw.bounds.origin.y,touchPoint.x + deltaWidth, touchPoint.y + deltaWidth);

コードは完全に正常に機能します。

また、いくつかの境界条件を追加します。

于 2012-10-01T16:14:35.697 に答える