我正在開發一個針對iOS6/7的應用程序,並且我已經失去了兩個小時盯着故事板,試圖理解爲什麼autolayout沒有做我想做的事情。Autolayout - 錨定到底部右側
基本上,我有一個包含滾動視圖的場景,並且在其中我想要在右下角固定一個UIIMage。因此,我設置了圖像4個約束:
- 寬度等於
- 高度等於
- 底部空間,上海華和
- 尾隨空間的SuperView
的XCode不會埋怨定位,所以我運行我的應用程序有信心,只是發現它沒有顯示在任何方向。它只是無處可尋!
我知道要找到自動佈局如何實現約束並做了它的魔法,我必須檢查view.bounds矩形。我在事件viewDidAppear檢查,發現其值爲如同預期:
圖片pos是:0.000000,0.000000 106.000000x103.000000
框架當然是在故事板的實際位置,我猜測是可以預料的。
這裏是我的故事板的屏幕帽:
任何想法?
更新: 一些更多的信息: 如果我刪除所有的約束和運行應用程序,圖像視圖顯示在我的縱向視圖的右下方,但轉動時,如預期,不顯示。
更新2: 這一切都應該落在可怕的UIScrollView和AutoLayout線程中。最後,我還原爲使用UIView,其中是一個UIScrollView,其中包含我想要滾動的所有內容(以便在橫向模式下沒有任何文本字段被鍵盤隱藏)。我想掛在底部的圖像留在容器UIView中,並且它都按預期工作。
請在'ViewDidAppear'中記錄'view.frame'(而不是'view.bounds'),因爲它位於superview的座標系中(所以它會告訴你視圖在哪裏)。另外,你有沒有設置滾動視圖的'contentSize'? –
當記錄view.frame時,它顯示我在故事板中定義的初始大小和位置,但據我所知,這是預期的。通過檢查view.frane,您在使用AutoLayout時無法獲取視圖的當前位置。我沒有設置scrollSize的'contentSize'(當鍵盤顯示爲向上移動內容時,我會設置它)。但是,正如我在我的問題中所添加的那樣,如果我刪除了約束條件,那麼圖像會以縱向模式顯示在右下角,但我不認爲這適用。 –
你能澄清一下,如果這個視圖是在滾動視圖內還是浮動視圖之上? –