2013-10-01 83 views
2

我是新來的ios開發,仍然試圖讓自動佈局掛起。我現在面臨的問題可以用以下圖片ios autolayout約束來調整屏幕大小的視圖

App on Iphone 5 screen size 4 inch

App on iphone 4 screen size 3. inch

現在更好地解釋,我去掉iPhone上的4我要的是「與社交網絡登錄」如何中心在「OR標籤」和「無需註冊開始」按鈕 之間的谷歌加號圖標,它也應該調整大小以適應它們之間。

它需要達到什麼樣的約束。如果有人能指出我的方向是正確的,那將是很大的幫助。這一整天我一直都在爲此而頭痛。謝謝。

+0

當你說,你說,你這樣做在運行時,或者當你在設計你的IB鑑於「我‘與社交網絡登錄’刪除」? – Rob

+0

在運行時刪除。 http://prntscr.com/1uluj7我想要的是增加兩個箭頭之間的空間。而不是底部的按鈕上升。 – aradhya

+0

好的。我已經用兩種方法更新了我的答案,以處理「Login with ...」標籤的刪除以及相應地更新/重新應用限制。 – Rob

回答

2

居中[G +] [或]之間[開始...]按鈕: 你需要做兩件事情..情節提要:

  1. 選擇[G +]和[或]
  2. 選擇編輯器 - >銷的垂直間距

然後

  1. 選擇[G +]和[開始]
  2. 選擇編輯器 - >引腳垂直間距

您應該在每次看到兩個對象之間出現一條垂直線。這表明該空間在3.5「或4」iPhone顯示屏上始終是相同的天氣。

我不明白你爲什麼要g +按鈕來調整大小......實際上,UI指南指示不同用戶不應該有不同的用戶體驗(請參閱爲什麼沒有替換對於iOS 7.0已棄用sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:方法)

阻止更改標籤/按鈕上的字體大小(取決於形狀因素等導致不同用戶擁有不同體驗)的邏輯是阻止您向上或向下縮放的邏輯您的[g +]按鈕也取決於外形因素。

+0

他我試過你說的話。這是iPhone 5上的結果http://prntscr.com/1ulpdu – aradhya

+0

以上所做的一切都是爲了確保三個按鈕之間的距離保持不變。您必須確保在*之前放*任何約束......按鈕放置在中間......以確保它確實處於中間位置......在3.5英寸和4英寸的外形尺寸上測試它 - 在故事板上,選擇包含查看問題 - 打開正確的欄 - 顯示屬性檢查器 - 對於大小選擇3.5,看看它的樣子,然後選擇4.0,看看它看起來像 – abbood

+0

http://prntscr.com/1uluj7我想要的是空間兩箭之間增加。而不是底部的按鈕上升。 – aradhya

0

如果你只是試圖讓「或」標籤和之間爲中心的「G +」圖形「啓動時不登記」的標籤,您可以:

  1. 添加視圖(你贏了因爲你會使它透明,但它對於對齊有用),其頂部約束與「OR」標籤相關聯,並且其底部約束與「無註冊開始」標籤相關聯:

  2. 然後在該視圖內放置「g +」圖形,將其中心垂直和水平約束與其超級視圖對齊。

    enter image description here

如果你這樣做,「G +」按鈕,會留在這兩個標籤(假設,當然中間,將「啓動時不登記」的標籤具有底部約束它的超級觀點,即它固定在視圖的底部)。在調整按鈕的大小方面,如果您想要,我會親自勸您,例如,您可以刪除我們上面創建的透明視圖,只需使用「g +」圖像/按鈕即可實現該功能本身。您將需要將該圖像視圖的內容大小設置爲「Aspect Fit」(因此它不會變形)。

同樣,我真的不喜歡後一種方法,但你可以做到。


我收集到你想在運行時刪除「使用社交網絡登錄」標籤。有兩種方法爲:

  1. 一個簡單的方法是爲高度約束爲標籤,例如,logInWithSocialNetworkHeightConstraint創建一個IBOutlet,然後你可以這樣做:

    self.logInWithSocialNetwork.text = nil; 
    self.logInWithSocialNetworkHeightConstraint.constant = nil; 
    [self.view layoutIfNeeded]; 
    
  2. 另一種方法是定義「OR」標籤和「g +」圖形適當視圖之間的約束。這本身,有兩種可能的方法:

    • 你可以在IB定義,但其中優先級小於1000因爲在「登錄與...」標籤的約束將有更高的優先級定義它當那個標籤在那裏時,那些約束將優先。如果您刪除標籤:

      [self.logInWithSocialNetwork removeFromSuperview]; 
      [self.view layoutIfNeeded]; 
      

      然後,您定義的新約束將發揮作用。

    • 您也可以刪除「Login with ...」標籤,然後以編程方式在「OR」按鈕和「g +」圖形視圖之間添加一個新約束。

相關問題