簡體   English   中英

如何將UIView修復到屏幕底部?

[英]How can I fix a UIView to the bottom of the screen?

我正在開發一個關閉自動布局並默認設置為Iphone 5的應用程序。現在我在屏幕底部有一個UIView,當我在IB中的大小選項之間切換時,UIView正確向上移動以將自己固定到底部的屏幕。 然而,當我在我的iPhone 4或模擬器上進行測試時,它不會向上移動,而是會被切斷。

我怎樣才能使應用程序底部的UIView為較小的IPhone 4向上分流?

請參閱以下示例

我基本上希望將白色盒子向上分流以填補灰色盒子下方的空隙。

更新

在視圖層次結構方面,有一個包含視圖,然后您看到的白色部分是一個簡單的UIView(白色背景),里面有滾動視圖。 該項目相當新,所以設置非常簡單,沒有任何代碼可以定位任何UIViews。

獲取Y坐標,獲取屏幕高度,減去主視圖上方的任何UI元素(如狀態欄)並減去要放置的UIView的高度。 例如:

float y = [UIScreen mainScreen].bounds.size.height - [UIApplication sharedApplication].statusBarFrame.size.height - myView.frame.size.height;
[myView setFrame:CGRectMake(0, y, myView.frame.size.width, myView.frame.size.height)];

這是一個非常典型的完整示例...... 2013 ...這在UITableViewController中很好用,頂部有一個導航欄,而你沒有使用autolayout。

將UIView相對於父視圖的底部定位?

希望它可以幫助某人。

你應該讓你的彈簧和支柱(自動調整面罩)設置這樣的東西......

在此輸入圖像描述

然后視圖將保持距離屏幕底部的距離。

更新

在您的評論中,您說您已正確設置此設置但視圖仍然被推下。 但是,您問題中的圖片並不像是一樣。 在4英寸版本中,您的視圖似乎向上滾動到屏幕頂部,而3.5英寸版本則不然。 我懷疑其中有原因(或者只是b / c你必須向上滾動你的4英寸以適應屏幕上的問題?)...你可以查看並更新你的問題,更詳細地了解你的視圖層次結構。

關閉AutoLayout,將視圖放在屏幕上的位置是固定值。 要進行此自動調整,您需要一些代碼。 您將需要使用autoresizingMask 以下是使用autoresizingMask /的示例

UIView *view = [[UIView alloc] init];
[view setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin];

最簡單的方法是選擇你的視圖,然后轉到Editor - > Pin - > Bottom Space to SuperView。 無論設備分辨率如何,此選項都會將視圖固定到容器視圖的底部。

擴展@Joel答案,對於iOS 7,我們不需要減去statusBar高度。

float y = [UIScreen mainScreen].bounds.size.height - myView.frame.size.height;
[myView setFrame:CGRectMake(0, y, myView.frame.size.width, myView.frame.size.height)];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM