私は、インテリジェントハウスのプロトタイプでさまざまなものを制御できるiPadアプリに取り組んでいます。たとえば、ライトのオンとオフを切り替えることができます。このためUIImageView
に、家の間取り図を示すを作成し、UIButtons
切り替え可能な各ランプのサブビューとして追加しました。
setFrame
ご覧のとおり、ボタンはそれぞれの方法を使用して間取り図に完全に配置されていますUIButton
。ただし、iPadを縦向きに回転させると、次のようになります。
ボタンの原点は明らかに同じですが、画像の再配置とは関係ありません。
平面図の画像には、支柱とばねの次の設定があります。
コンテンツモードがに設定されていAspect Fit
ます。
私の質問は
UIButton
同じ相対位置になるように、それぞれを動的に再配置するにはどうすればよいですか。{did/should}AutorotateToInterfaceOrientation
これはdelegateメソッドで処理する必要があると思います。
はズーム可能であり、これを処理するために、デリゲートメソッドを次のようUIImageView
に実装していることに注意してください。scrollViewDidZoom
for (UIView *button in _floorPlanImage.subviews) {
CGRect oldFrame = button.frame;
[button.layer setAnchorPoint:CGPointMake(0.5, 1)];
button.frame = oldFrame;
button.transform = CGAffineTransformMakeScale(1.0/scrollView.zoomScale, 1.0/scrollView.zoomScale);
}
前もって感謝します!