自定义长宽比与自动布局

比方说,我有一个UIView包含一个孩子UIView必须是4:3。 我想在代码中使用AutoLayout来解决这个问题。

我一直在努力与AutoLayout,但我还没有想出如何做到这一点。

你知道如何解决这个问题吗?

非常感谢你。

我附上一张图片来更好地解释我的意思。 http://d.pr/i/d0Oc

我想通了。

//Given a childView... NSLayoutConstraint *constraint =[NSLayoutConstraint constraintWithItem:childView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:childView attribute:NSLayoutAttributeHeight multiplier:4.0/3.0 //Aspect ratio: 4*height = 3*width constant:0.0f]; [childView addConstraint:constraint]; 

这里是Swift 3的语法:

 NSLayoutConstraint( item: item, attribute: .width, relatedBy: .equal, toItem: item, attribute: .height, multiplier: width / height, constant: 0); 

我已经尝试了所有上面的答案,但没有工作,这是我的解决scheme与迅速3:

 let newConstraint = NSLayoutConstraint(item: yourView, attribute: .width, relatedBy: .equal, toItem: yourView, attribute: .height, multiplier: 560.0/315.0, constant: 0) yourView.addConstraint(newConstraint) NSLayoutConstraint.activate([newConstraint]) NSLayoutConstraint.deactivate(yourView.constraints) yourView.layoutIfNeeded()