2012-12-06 71 views
1

我正在開發一個應用程序,其中當用戶點擊按鈕時,視圖將顯示下方的視圖,視圖高度取決於一些標準。它將有一些x高度或y高度,沒有其他高度。現在我的問題是,如何根據標準或每次我應該根據放置的內部視圖來計算高度,我是否應該根據標準進行硬編碼,如果我每次都計算高度,現在它是無用的,因爲我們知道應該是什麼樣的高度,但將來可能會發生UI變化,所以高度可能會改變。 我想知道你們的想法,哪種方法正確?適當的方式分配框架

在此先感謝!

+0

聽起來像'NSSplitterView'的工作? – trojanfoe

回答

0

只要視圖佈局不變,我就會使用硬編碼值。即使稍後改變,我也會首先使用硬編碼值,然後在真正需要時我會將實現更改爲動態值。我的邏輯背後的原因是,除非真的需要,否則條件可能會非常迅速地發生變化,因此即使您現在實施了動態實施,也不能確定在真正需要時不必再次更改它,因爲規範改變,直到那時例如

+0

感謝@Pfitz,您的回答。是的,我同意,如果將來規格發生變化,我需要更改UI。 –

0

我做的混合物中的硬編碼和計算:

要計算的視圖i的定義硬編碼插圖的位置:

CGFloat topInset = 5; 
CGFloat bottomInset = 5; 

CGFloat leftInset = 5; 
CGFloat interButtonDistance = 10; 

然後我calulate由子視圖幀的位置:

CGFloat startX = 0; 
CGFloat startY = 0; 

CGFloat buttonSize = 50; 

CGFloat buttonX = leftInset + column * (buttonSize + interButtonDistance); 

而且我不使用硬編碼的屏幕大小,我看了他們

CGFloat height = self.view.frame.size.height; // or similar 

然後,我可以通過

buttonY = height - buttonHeight - bottomInset; 

定位在視圖底部的按鈕,使用此TECHNIC你是從iPhone/iPad的屏幕高度多一點indepenedent。 在dieffernet屏幕尺寸(iphone 5)中使用devicxe時,仍然需要調整值,但這樣做更容易,希望yus只需調整topInset和boittomInset,其餘部分就可以使用(希望)