2013-05-03 54 views
0

我想知道是否有任何方式自動和編程生成不同大小的屏幕,如他們在故事板中完成幀。在故事板中,只要自動調整掩碼設置正確,視圖的幀就會動態生成以填充整個屏幕。當按下故事板中的'應用替代設備外觀因素'按鈕並且屏幕大小&內容動態增長或縮小時,可以顯示此內容。但是,每當我嘗試以編程方式創建視圖時獲得相同的行爲時,該框架不會動態縮放。有沒有什麼方法可以像基於當前設備框架的Storyboard一樣自動生成這個框架?是否有任何優雅的解決方案,以編程方式爲不同大小的設備創建視圖,而無需手動管理每個設備的靜態幀?有沒有人有他們可以分享的任何資源或他們可以提供的例子?自動程序化CGRect框架爲iPhone 5喜歡故事板

謝謝。我很感謝幫助。

回答

0

不是靜態設置框架,而應根據區域的大小(例如高度)放置框架。例如,如果設備高度是568而不是480,那麼這將創建視圖並將其從底部放置50並且還伸展大小。

someView.frame = CGRectMake (0,someView.frame.size.height + (self.view.frame.size.height - 50),100 + (480 - self.view.frame.height),100); 
0

如果你的目標是iOS6,你可以使用Auto Layout。如果你不是針對iOS6的(或者你不想混淆自動佈局),你可以將UIView的autoResizingMask屬性設置爲任何你想要的。即view.autoResizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

+0

感謝您的回覆。我目前正在以編程方式設置視圖的自動調整屏蔽,但這並不會在第一次繪製屏幕時改變視圖在屏幕上的位置。這隻會影響視圖的框架,只要其父邊界發生變化,就像設備旋轉一樣。 – Krejko 2013-05-03 15:36:29

+0

如果要在視圖控制器的viewDidLayoutSubviews之後添加視圖,或者已經爲較大的屏幕配置了超級視圖,則必須調整視圖的框架。如果視圖控制器是在3.5英寸的IB中設計的,並且在設置autoResizingMask時將視圖添加到viewDidLoad中,它將自動佈局它 您也可以在viewWillLayoutSubviews中添加視圖並計算視圖控制器視圖的高度以使你的調整。 – CEarwood 2013-05-03 20:04:30