自定义长宽比与自动布局
比方说,我有一个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()