0

UIViewメソッドメソッドで遭遇した問題がありますconvertRect: fromView:。状況は次のとおりです。UIViewクラスを上書きして、ユーザーの動きに合わせて回転するビューを作成しました(TaskRabbitスピナーに非常に似ています)。回転を作成するために、サブクラス化されたビューに追加のビューを追加し、そのビューを回転させました。回転したビューには、回転したサブビューと一緒に明らかに回転する追加のサブビューが含まれています。問題は、サブビューが回転された後、回転されたビューではなく、元の上書きされたビューに関して、それらの追加のサブビューがどこにあるかを見つける必要があることです。これを行うために、私のUIViewクラスでは、次のものがあります。

[self convertRect:currentView.frame fromView:rotationView];

ただし、変換された rect のフレームを印刷すると、座標が正確ではありません。convertRect: fromView:ビューを回転させた後に正確でないこの問題に遭遇した人はいますか?

編集

具体的には、ポイントが正確ではないことについて、あるべきものとあるべきものとの関係さえわかりません。つまり、特定の角度だけずれている、x/y が反転しているなどです。たとえば、あるべきポイント (25 , 195) は (325.25, 273.16) で返されます

4

1 に答える 1

1

ビューに変換を適用してビューを回転させていると想定しています(CGAffineTransformビューまたはCATransform3Dレイヤーに)。これがフレームの問題の原因です。UIView フレームのドキュメントには次のように書かれています。

警告プロパティが恒等変換でない 場合、transformこのプロパティの値は定義されていないため、無視する必要があります。

既に見たように、フレームの値は未定義です。centerただし、およびboundsプロパティは引き続き使用できます。

于 2012-05-24T17:20:12.777 に答える