2013-06-24 33 views
0

Noob here。在SO上的各種類似的問題,但仍然無法弄清楚。我在主視圖上有一對按鈕,滾動視圖中有一對按鈕(嵌入在主視圖中)。每一對按鈕都位於顯示屏的兩端。滾動視圖覆蓋顯示屏的下半部分。在UIScrollView中重新定位UIButtons

當我從縱向旋轉到橫向時,主視圖中的一對按鈕將根據佈局約束在顯示屏的兩端正確地重新定位。但滾動視圖中的按鈕沒有正確重新定位。滾動視圖本身在橫向模式下正常擴展(如背景顏色所示),但按鈕不移動。兩組按鈕都具有相同的佈局約束。我怎樣才能讓滾動視圖中的按鈕模仿主視圖中的按鈕?換句話說,如何在橫向模式下將滾動視圖中的一對按鈕移動到相反的兩端?

我沒有任何自定義代碼,所有事情都是通過界面構建​​器完成的。我使用iOS 6.1和xcode 4.2。

回答

0

自動佈局往往有點混亂。您可以在屏幕旋轉後自定義元素的位置。這些是iOS在設備旋轉時會調用的方法。只要給按鈕網點,並調整它們的那些方法

如果旋轉內部組件之前,從UIViewController的覆蓋:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
// do something before rotation 
} 

如果你想旋轉後執行的東西:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation 
{ 
// do something after rotation 
} 
+0

感謝您的快速響應!我希望得到一個無代碼的解決方案。自動佈局功能缺乏滾動視圖?這是否意味着在滾動視圖中佈局約束是不相關的(即被忽略/被忽略)? – Fabricio

+0

scrollview是其他視圖的容器,所以即使它將旋轉,它也不會自動旋轉其中的內容。 – Ben

0

我解決了問題而不需要任何手寫代碼。我向滾動視圖添加了單個內容視圖,然後將我的子視圖(即UIButton)添加到內容視圖。

我通過添加高度約束來固定內容視圖的高度,將內容視圖的左側,頂部和右側固定到滾動視圖(未固定底部以防止內容視圖在橫向縮小模式)。此外,將滾動視圖(左側,頂部,右側和底部)固定到其超級視圖,以確保其在橫向模式下的高度適當縮小和寬度擴展。

成功的祕訣在於佈局約束。一旦我完全 - 我的意思是完全理解了這些限制,這一切都變得清晰起來。