我的问题如下:
我有UIImageView
个标签。图像是公式,UILabel
表示条目。
如果我旋转设备,UIImageView
内的图像会调整大小并选择“纵横比”。
我怎样才能实现UILabel
也调整大小并对齐正确?
调整大小的常规选项无法正常工作。
UIImageView
可缩放,并设置了最小缩放比例和最大缩放比例。
感谢。
答案 0 :(得分:1)
您可以使用以下方式按比例调整UILabel
的大小:
label.transform = CGAffineTransformMakeScale(0.5, 0.5);
您可以使用以下方式重新定位UILabel
:
label.frame = CGRectOffset(label.frame, deltaX, deltaY);
其余的是数学=)
所以我设法解决了你的问题。完整源代码here。
基本上我删除了您的UIImageView
并将其替换为UIView
。然后,我在UILabel
中添加了您的UIView
,并从界面构建器中的UIView
和UILabel
中删除了任何自动调整大小。这样,当UIView
调整大小时,其中的任何内容都会被重新调整大小/重新定位。
下一步是在界面构建器中将UIView
的类更改为UIImageView
。现在从源代码我可以使用imgView.image = [UIImage imageNamed:@"imagename.png"];
为其设置图像,我也可以使用imgView.contentMode = UIViewContentModeScaleAspectFit;
设置模式。
旋转时的转换现在发生在:
if (UIDeviceOrientationIsLandscape(deviceOrientation)){
// Play with the scale if you have any other images with different ratio.
float scale = 2.3f/3.0f;
// Transforming the UIImageView containing the UILabels which actually is a simple UIView
imgView.transform = CGAffineTransformMakeScale(scale, scale);
} else {
// Original size again
imgView.transform = CGAffineTransformMakeScale(1, 1);
}