[英]XCode Interface Builder : How to configure interface builder to show an 3.5 inch iphone?
[英]How to make a uitableview in interface builder compatible with a 4 inch iPhone
如何在界面生成器中與4英寸iphone5和較舊的iPhone 4 / 4s兼容?
Xcode 4.5有三個選項:
如果我選擇了Retina 4,那么在3.5英寸手機中它會穿過/溢出屏幕邊框
使用代碼,我可以相應地設置框架,但是使用界面構建器有什么用?
應該如何使用Interface Builder進行操作?
編輯
我的問題是iphone 5視網膜4英寸屏幕。 當檢查具有狀態欄和導航欄的視圖的大小時,這里是self.view.frame.size.height / width的值,如果我選擇自由形式/無/視網膜3.5,則為320.000000 x 416.000000
設置自動調整大小選項,以便視圖在所有方向上擴展,即啟用所有支柱和彈簧。
編輯在iOS6模擬器中進行測試,如果我在代碼中設置以下內容
self.tableView.frame = CGRectMake(0, 0, 320, 546);
self.tableView.bounds = CGRectMake(0, 0, 320, 546);
self.view.frame = CGRectMake(0, 0, 320, 546);
self.view.bounds = CGRectMake(0, 0, 320, 546);
NSLog(@"%2f - %2f", self.view.bounds.size.width, self.view.bounds.size.height);
NSLog(@"%2f - %2f", self.tableView.bounds.size.width, self.tableView.bounds.size.height);
我得到以下輸出
320.000000 - 546.000000
320.000000 - 546.000000
並且從頂部開始的480 px以下的所有行都是不可選擇的,因為“視圖”仍然認為它們超出界限。
我的解決方案
為所有屏幕設置Retina 4的大小,甚至是主窗口xib文件。 在此之后,它甚至可以在iphone 4上正常工作。 現在,所有低於480px的行都可以在iOS 6模擬器中點擊
設置大小謹防屬性設置為“視網膜4全屏”如果你的應用程序,你現在actionsheets。 此解決方案實際上將主窗口的尺寸設置為iPhone 5的尺寸。在我的情況下,當您嘗試顯示操作表時,在iPhone 4中設置此受影響的顯示,因為它將嘗試從可視屏幕下方顯示它。
適用於所有情況的正確解決方案是將大小設置為none並在app delegate didfinishloading方法中檢測屏幕大小,並將主窗口設置為該大小或將rootviewcontroller的視圖設置為該大小。 操作表將正常工作。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window.frame = CGRectMake(0, 0, [[UIScreen mainScreen]bounds].size.width, [[UIScreen mainScreen]bounds].size.height);
}
選擇您的xib文件並更改Size
屬性。
根據我的理解,你想創建一個適用於iPhone 4和5的表視圖。首先,我首先嘗試了Xcode 4.5,但是代碼
CGRect fullScreenRect = [[UIScreen mainScreen] bounds];
theTableView.frame = CGRectmake = (0,0,fullScreenRect.width,fullScreenRect.height);
fullScreenRect
將返回當前設備的界限,無論是3.5還是5英寸。 你可以動態設置高度和寬度。
讓我知道它是否有效..
干杯
w ^
在Interface Builder中選擇“自由形式”,“Retina 3.5”或“Retina 4”等設置位於右側面板的“ 模擬指標”部分(注意添加的重點) 。
這意味着它們僅用於向您顯示在這些維度上顯示時視圖的外觀。 通常,您可以使用它來了解設計時用於布置視圖的空間。 但是UIViewController的UIView總是在最后顯示在屏幕上時調整大小。
例如,如果您知道頂部有一個狀態欄和一個NavigationBar,底部有一個TabBar,那么您在屏幕上組織剩余視圖的空間將會減少,因此請在“模擬指標”部分中選擇這些視圖。該面板將幫助您查看視圖中的哪個空間,並避免將元素放在y = 460處,因為這些NavBar和TabBar會在運行時偏離屏幕。
但最后,UIViewController將調整其視圖大小,以便占用最大可用空間,根據AutoresizingMask屬性移動子視圖(您可以在IB中的Size Inspector窗格中配置struts和spring)。
總之,您唯一需要做的就是:
如果您的界面使用Storyboard:
用“文本編輯器”打開* .Storyboard
然后到最后找到<simulatedScreenMetrics key="destination" type="retina4"/>
刪除type="retina4"
然后它將是3.5“的默認大小
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.