同上篇一樣,圖示3個ImageView,他們的寬度和高度都是固定的(比如100),那么如何用約束使他們等距離擺放呢?

首先對每個imageView都做等高等寬約束,值都為約定好的100。

我們來理清一下已知條件,N個(現在是3個)imageView,每個imageView的寬度和高度都是100,將它們進行等距離縮放。
我們先來進行簡單一些的,假設imageView之間的間距和imageView對屏幕邊緣的間距是相等的?,F在假設間距為x,整個屏幕寬度為X,可以計算 x = (X-300)/4,那么第一個imageView的中心點橫坐標為 x+50, 也就是 X/4 - 25,也就是說,第一個imageView處于整個屏幕寬度的1/4往左偏移25pm處。
(注意這里要確保imageView的寬度不會太大,否則在窄屏幕上回重疊在一起)

然后修改水平方向相等的約束,在我看來這個約束的意義是水平方向上中心點的x值相等,我們把它的multiplier修改為1:2,也即imageView.center.x = view.center.x/2,也就是位于整個屏幕的1/4處,constant修改為-25,即往左偏移25pm,和我們上面的計算結果一致。

同理第二個imageView的中心點橫坐標為 2x+150,也就是X/2,即位于整個屏幕正中央,做相同的約束,并且multiplier修改為1, constant為0
同理第三個imageView的中心點橫坐標為 3x+250,也就是3X/4 + 25,multiplier修改為3:2, constant為25
這樣就完成了

效果圖如下:


基本方法就是這樣的了,對于稍微復雜一些的,比如和屏幕之間間距是固定的等距離擺放,則需要自己動筆去計算一下其中約束的值應該怎么設置,然后按照計算好的值填上去,就ok了。