2012-09-27 15 views
1

我剛剛看了評論說,像使用筆尖來構建視圖的良好做法?

另一個原因從來沒有使用筆尖

它是如此惡劣的做法是使用筆尖來構建在iOS的意見?我認爲這是一個很好的系統,使您能夠快速構建視圖而無需編寫大量代碼。我一直在用筆尖工作一段時間,從來沒有看到他們使用的很多缺點。

所以我的問題是:我應該使用筆尖還是編碼我的意見,爲什麼?

+0

你從哪裏看到這個?它可能是vs xib嗎? – Joe

+0

http://stackoverflow.com/questions/12316055/empty-uitableview-not-bouncing-when-loaded-from-a-nib/12316255#12316255 – Joe

+0

不,有人有空的tableviews不彈跳的問題,並評論在答案之下。我從來沒有質疑筆尖的價值,但它讓我懷疑是否存在真正的缺點。 – Asciiom

回答

2

我認爲「從不使用筆尖」的說法是荒謬的。你只需要知道什麼時候使用它們以及什麼時候避開它們。它們非常適合複雜但靜態的視圖,在這種情況下,您會浪費大量時間獲取正確的座標和大小。對於動態GUI,當然你應該使用代碼。

但是,有些人可能擔心GUI不在他們的控制之下,如果他們不是通過代碼自己創建它並查看每個細節的話。但這是一個主觀點。

一個肯定的缺點是,如果您使用源控件,xib很難合併。 Xib文件實際上是XML文件,當您在GUI中更改某些內容時,會在後臺添加,刪除或更改很多引用。這會導致很難解決的衝突。

另一個可能是性能原因。從nib文件加載您的GUI稍微慢一點(在某些情況下),然後直接在代碼中創建它。有些人建議不要在應用程序啓動時使用任何必須加載的GUI來縮短啓動時間。但我不確定是否存在顯着差異。

+0

我同意。關於性能,是否在運行時讀取筆尖?編譯器不會將它們轉換爲機器代碼或其他東西? – Asciiom

+0

您是否測量了這個理論,或者您從哪裏獲得XIB比手動實例化接口更慢的信息? – Till

+0

http://cocoawithlove.com/2010/03/load-from-nib-or-construct-views-in.html – DrummerB

2

我更喜歡在任何可能的情況下使用NIB! 我的理由是:

  • 易於維護和需要更改我可以立即查看結果。
  • 現在的iPhone5有一個新的決議 - 事情真的很容易在NIB
  • 很容易做到的使用
  • 更少的代碼編寫

我甚至做小的彈出意見那裏設置容器視圖隱藏。 然後我用containerView.hidden顯示/隱藏這些彈出視圖= YES/NO;