在我的應用程序中,我的所有控件都是在代碼中創建的。我沒有使用IB來控制。現在我想旋轉視圖到風景模式。我知道我必須爲此使用shouldAutorotate方法。但由於我沒有使用過IB,所以當它們處於橫向模式時,如何調整控件大小?我怎樣才能正確使用代碼定位他們? PLZ幫助我,這是一種重要而緊迫的事情。 thnx提前。旋轉UI查看IB
旋轉UI查看IB
回答
在大多數情況下,你可以得到的觀點,只是由他們autoresizingMask屬性設置的某種組合適當地調整自己:
UIViewAutoresizingFlexibleLeftMargin
UIViewAutoresizingFlexibleRightMargin
UIViewAutoresizingFlexibleTopMargin
UIViewAutoresizingFlexibleBottomMargin
UIViewAutoresizingFlexibleWidth
UIViewAutoresizingFlexibleHeight
例如,假設您希望在它旋轉到橫向視圖的寬度增加,你希望它同利潤率相對於上,左,右兩側,屏幕的維護,你希望它的高度保持不變。這意味着在上述六個屬性中,只有寬度和底部邊距應該是靈活的。其他四個屬性是固定的。所以,你會怎麼做:
yourView.autoresizingMask = UIViewAutoResizingFlexibleWidth | UIViewAutoresizingFlexibleBottomMargin;
在那些極少數情況下,當你不能得到的意見,做出相應的表現用他們autoresizingMask屬性,你可以自定義視圖將它們包裝和覆蓋該視圖的layoutSubviews
方法。此方法在視圖的框架由於自轉而更改時被調用,因此您可以檢查[[UIApplication sharedApplication] statusBarOrientation]
並手動更新子視圖的框架。
您可以使用代碼正確定位它們,就像您可能將它們定位到原始方向一樣,例如通過設置它們的框架。
至於代碼的執行位置,請查看UIViewController的各種方向更改方法,該方法將在設備方向更改時調用。例如,您可以在willAnimateRotationToInterfaceOrientation:duration:範圍內移動/調整視圖中的控件大小。
嗨。 thnx的迴應。但我關心的是,我必須爲每個對象設置幀的橫向格式嗎?我的意思是我將不得不爲每個對象設置兩次幀,即 - 縱向和橫向?這將變得很麻煩,因爲我有很多的意見,並在他們每一個很多的控制?你有什麼樣的例子或代碼能幫助我嗎? – Jayshree 2010-09-03 04:56:23
- 1. 在IB中旋轉標籤?
- 2. ObjC - 自動查看旋轉
- 3. 在touchesMoved中查看旋轉
- 4. 查看當前旋轉
- 5. iOS - IB查看模式
- 6. 用鼠標旋轉Ui對象查看UWP
- 7. 如何在Xcode + IB中旋轉UIbutton?
- 8. 旋轉UI控件
- 9. 自動旋轉:查看高度恢復到原來的旋轉
- 10. Xcode Autolayout - 查看旋轉時未選中
- 11. Maya MFnRotateManip查看旋轉手柄
- 12. 隨機旋轉圖像查看
- 13. UIActivityIndicatorView的旋轉率查看
- 14. 查看變換旋轉抵消iOS中
- 15. Swift:Collection查看旋轉後更改佈局
- 16. iPad Modal View旋轉parentViewController查看
- 17. 的iOS - 查看旋轉和調整
- 18. 旋轉圖像查看隨機
- 19. 在查看器中旋轉2D可查看
- 20. 合金UI旋轉木馬
- 21. 使UI標籤旋轉
- 22. 圖像旋轉Protactor UI
- 23. 旋轉圖像使UI慢
- 24. 旋轉JQuery UI選項卡
- 25. 用jQuery UI查看和部分查看
- 26. 防止AVCaptureVideoPreviewLayer旋轉,但允許UI層以方向旋轉
- 27. jQuery UI的旋轉GET旋轉程度,當它停止
- 28. 無法查看Airpal UI
- 29. Backbone.js查看jquery ui事件
- 30. Kendo Ui web列表查看
hey thnx。我認爲這將幫助我與笏我試圖實現。我認爲autoresizing屬性會鍛鍊得很好。 – Jayshree 2010-09-03 06:26:25