[解決済み] CALayerのanchorPointを変更すると、ビューが移動します。
質問
を変更したいのですが
anchorPoint
を変更したいのですが、ビューは同じ場所に置いたままです。
試しに
NSLog
-とする
self.layer.position
そして
self.center
で、これらは両方ともアンカーポイントの変更に関係なく同じままです。しかし、私のビューは動きます!
これを行う方法についての任意のヒント?
self.layer.anchorPoint = CGPointMake(0.5, 0.5);
NSLog(@"center point: %f %f", self.layer.position.x, self.layer.position.y);
self.layer.anchorPoint = CGPointMake(1, 1);
NSLog(@"center point: %f %f", self.layer.position.x, self.layer.position.y);
と出力されます。
2009-12-27 20:43:24.161 Type[11289:207] center point: 272.500000 242.500000
2009-12-27 20:43:24.162 Type[11289:207] center point: 272.500000 242.500000
どのように解決するのですか?
この レイヤーのジオメトリとトランスフォーム のセクションでは、CALayerの位置とanchorPointプロパティの関係について説明しています。 基本的に、レイヤーの位置はレイヤーのanchorPointの位置で指定されます。 デフォルトでは、レイヤーのアンカーポイントは (0.5, 0.5) で、これはレイヤーの中心に位置しています。 レイヤーの位置を設定すると、スーパーレイヤーの座標系でレイヤーの中心の位置を設定することになります。
位置はレイヤーのアンカーポイントからの相対的なものなので、同じ位置を維持したままアンカーポイントを変更すると、レイヤーが移動します。 この移動を防ぐには、新しいアンカー ポイントを考慮してレイヤーの位置を調整する必要があります。 私が行った 1 つの方法は、レイヤーの境界を取得し、境界の幅と高さに新旧のアンカー ポイントの正規化された値を掛け、2 つのアンカー ポイントの差を取り、その差をレイヤーの位置に適用する方法です。
この方法で、回転を考慮することもできるかもしれません。
CGPointApplyAffineTransform()
をUIViewのCGAffineTransformと一緒に使うことで、この方法で回転を考慮することもできるかもしれません。
関連
-
[解決済み】ウィンドウ階層にないビューを持つUIViewControllerでUIViewControllerを表示しようとする
-
[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
-
[解決済み] ペン先を読み込んだが、「表示」コンセントが設定されていない
-
[解決済み] Cocoa:フレームとバウンドはどう違うの?
-
[解決済み] UITableViewの選択を無効にするにはどうすればよいですか?
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] UIViewController のビューが表示されているかどうかを確認する方法
-
[解決済み] synthesize vs @dynamic、その違いとは?
-
[解決済み] エラー : サービスは無効です
-
[解決済み] iPhoneのTableViewのCellの右側に小さな矢印を追加する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] iPhoneでウェブページからアプリがインストールされているかどうかを確認する方法
-
[解決済み] プロダクションコードでNSLog()を使ってはいけないというのは本当ですか?
-
[解決済み] UIViewControllerの上にclearColor UIViewControllerを表示する
-
[解決済み] iOSアプリでドキュメントフォルダ内にフォルダを作成する
-
[解決済み] iPhone UIViewアニメーションのベストプラクティス
-
[解決済み] UIWebViewの背景がクリアカラーに設定されているが、透明になっていない
-
[解決済み] iOSアプリをクラッシュさせる確実な方法とは?
-
[解決済み] CALayerのanchorPointを変更すると、ビューが移動します。
-
[解決済み] AppDelegate.mで画面上に現在表示されているUIViewControllerを取得する。
-
[解決済み] UITextFieldの高さを設定するには?