如何以编程方式设置子视图的框架以使其适合其超级视图?

时间:2014-09-12 12:57:42

标签: ios view frame addsubview

我需要以编程方式执行以下操作。我怎样才能做到这一点?代码应该足够动态,以适应景观内的纵向视图。视图不是UIImageViews。  enter image description here

2 个答案:

答案 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)];