我正在开发一款 iPad 应用程序,它可以让你在智能房屋的原型中控制不同的东西。例如,它可以让您打开和关闭灯。为此,我制作了一个UIImageView
显示房子的平面图并添加UIButtons
为每个可以切换的灯的子视图。
setFrame
如您所见,使用each 的方法将按钮完美地放置在平面图上UIButton
。但是,当我将 iPad 旋转到纵向时,会发生以下情况:
这些按钮显然仍然具有相同的来源,但它与图像的重新定位无关。
平面图图像具有以下支柱和弹簧设置:
并将其内容模式设置为Aspect Fit
.
我的问题是
如何动态重新定位每个UIButton
,使其具有相同的相对位置。我想我必须在{did/should}AutorotateToInterfaceOrientation
委托方法中处理这个问题。
应该注意的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);
}
先感谢您!