2017-08-02 86 views
-1
我使用自动版式为我的应用程序设计

。对于我HeaderView之一,我已经设置它的使用ASPECTRATIO高度。改变长宽比约束值编程

现在当主视图不包含任何数据时,HeaderView高度应该为0,并且在添加数据时应该再次设置为原始高宽比。

我们可以改变纵横比,因为我们改变任何约束的恒定值。我尝试了下面的代码,但它不能正常工作。

@IBOutlet weak var constOptions_Height: NSLayoutConstraint! 
if arrData.count == 0 { 
    constOptions_Height.constant = 0.0 
} 
else{ 
    constOptions_Height.constant = 50.0 
} 
+0

我认为你需要更改倍频值不是恒定的。 constOptions_Height.multiplier = cgfloatValue – Rishabh

+0

@Rishabh Multiplier是一个只有属性。 –

+0

那么你可以尝试重新创建约束为了修改倍频,很像我们分配框架改变的观点立场。或者简单地从代码而不是故事板创建该约束。 https://stackoverflow.com/questions/31334017/how-to-set-aspect-ratio-constraint-programmatically-in-ios – Rishabh

回答

1

您可以使用下面的方法

给两个约束。一个是纵横比,另一个是高度。

使两个主动或者像

constOptions_Aspect.isActive = false 
constOptions_Height.isActive = true 

你可以给高度为零,高度不变。

+0

实际上,如果它的优先级低于'constOptions_Height',你不必改变'constOptions_Aspect'。例如,如果'constOptions_Aspect'具有优先级'999'且'constOptions_Height'具有优先级'1001',那么设置'constOptions_Height.isActive = true'就足够了。 – Sulthan

+0

是的。我们也可以通过不同的优先事项来实现同样 –

+0

谢谢@MohammadSadiq。 –