簡體   English   中英

iOS 7狀態和導航欄在故事板中的高度不同於應用程序

[英]iOS 7 status and navigation bar different height in storyboard than in app

這是一個視圖控制器,而不是模態顯示,因此全屏。

在故事板中,“頂部布局指南”位於y:64 當狀態欄為height:20時,我會期待這一點height:20 ,導航欄height:44

但是,當應用程序運行時,“頂部布局指南”為y:52 我不知道它是如何或為何失去12分。

當您使用Apple的導航控制器插入導航欄時,它將根據您的方向具有不同的高度。 例如,導航欄為縱向44點,橫向為32點。 在你的情況下,我猜你的應用程序何時運行,它是橫向的,因此“頂部布局指南”是y:52(32 + 20)。

請參閱此相關帖子: 帶旋轉的NavigationBar。

如果您嘗試監視這些導航欄高度更改,例如:

-(void) viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];
    CGFloat navBarHeight = self.navigationController.navigationBar.frame.size.height;
}

你會意識到,雖然app將方向改為橫向模式,但navBarHeight的價值仍然是舊的( 44 )。 要解決這個問題,請使用內在大小:

-(void) viewDidLayoutSubviews
    {
        [super viewDidLayoutSubviews];
        CGFloat navBarHeight = self.navigationController.navigationBar.intrinsicContentSize.height;
    }

通常 ,您無法確定故事板(或筆尖)中對象的幾何形狀是最終的屏幕幾何形狀。 最終的屏幕幾何形狀不僅取決於設備方向,還取決於屏幕尺寸(例如,3.5英寸與4英寸iPhone)。

不幸的是,否則很容易想到。 例如,如果故事板正在縱向模擬4英寸iPhone,並且您在4英寸模擬器中以縱向運行應用程序,那么最終的屏幕幾何將與故事板中的幾何相同。

要在故事板中模擬不同的方向或屏幕尺寸,請訪問視圖控制器的“屬性”檢查器:

在此輸入圖像描述

如果你正在使用Xcode 5,那么在右下角的IB畫布上還有一個“浮動”按鈕,可以讓你快速改變模擬的形狀因子。

在此輸入圖像描述

暫無
暫無

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

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