2016-07-13 84 views
-3

我試圖設計一個如下所示的屏幕。我可以爲幾個設備(例如iPhone 5和5S)進行此設計。這意味着我的應用程序可以在iPhone 5和5S上正常運行。但是當我嘗試在iPhone 6或6S上運行它時,我的設計被破壞並中斷。我如何爲所有設備進行通用設計?適應所有具有自動佈局的設備

enter image description here

+1

使用自動佈局。 – Moritz

+1

你可以在這裏發佈你的代碼給我們看嗎? – keithbhunter

+0

我已經使用Autolayout,所以我沒有代碼。 – Alp

回答

2

這裏是一個函數,給出了一個CGPoint從中心偏移,對於給定指標

func offset(forIndex index: Int) -> CGPoint { 
    let part = M_PI/11.0 
    let phi = part * Double(index) 
    let x = Double(UIScreen.mainScreen().bounds.width) * sin(phi) 
    let y = Double(UIScreen.mainScreen().bounds.height) * cos(phi) 
    print("----") 
    print("index \(index)") 
    print("x \(x)") 
    print("y \(y)") 

    return CGPoint(x: CGFloat(x), y: CGFloat(y)) 
} 

有了這個功能,你可以定位你的按鈕相應

+0

我更喜歡使用自動佈局來實現這種自定義的策略。 –

0

所以,這裏有一個我以前用過的圖案:

enter image description here

灰色條只是UIViews的擴大和縮小,以保持所有的按鈕在不同的屏幕上相同的間隔。在你的實際設計中,這些將是透明的。這些視圖中的每一個都有一個限制,使它們具有相同的高度 - 這將保持按鈕之間的空間相等,而不管屏幕的垂直大小如何。

其他約束是中間按鈕被限制爲垂直居中,並且每個按鈕的包含視圖的尾部空間增加。每個按鈕是約束有0點的間距上方和下方的看法。

當你在一個小屏幕上運行這個,間隔將收縮,並在一個更大的屏幕上,他們會增長。在較大的屏幕上,如果設置爲使用固有尺寸,您還應該獲得更大的按鈕。

這不會保留橢圓的形狀,但你可以使按鈕的x座標與屏幕寬度成正比,我猜。取決於你的目標是整體外觀。