我需要以编程方式执行以下操作。我怎样才能做到这一点?代码应该足够动态,以适应景观内的纵向视图。视图不是UIImageViews。
答案 0 :(得分:3)
如果您不介意在项目中包含AVFoundation
框架,可以使用:AVMakeRectWithAspectRatioInsideRect(CGSize aspectRatio, CGRect boundingRect);
其文件说明:
返回一个缩放的CGRect,它维护由边界CGRect中的CGSize指定的宽高比。
可以用作:
subview.frame = AVMakeRectWithAspectRatioInsideRect(subview.bounds.size, superview.bounds);
<强>参数:强>
aspectRatio :您要维护的宽高比(宽高比)。
boundingRect :您想要适合的边界矩形。
答案 1 :(得分:0)
float ratio = subView.bounds.size.height/subView.bounds.size.width;
[subView setFrame:CGRectMake(0,0,superView.bounds.size.width,superView.bounds.size.width*ratio)];
[subView setCenter:CGPointMake(superView.bounds.size.width/2,superView.bounds.size.height/2)];