2013-03-05 58 views
2

一個想成爲iOS開發者的簡單問題。我想創建一個沒有Interface Builder的iPhone應用程序的UI,只能通過編程。不過,我想堅持到MVC建議和獨立的V和C,有一個乾淨可讀的代碼,因此:我在哪裏創建自定義UI元素?

  • 我創造UIView類文件(比如SplashView.h和SplashView.m)
  • 我創建的UIViewController類文件(SplashViewController.h和SplashViewController.m)
  • 我定義UIView類文件
  • 我的UI元素(視圖,子視圖,按鈕和文本字段)我加載視圖控制器的方法的loadView主視圖,再在視圖控制器的viewDidLoad方法中做其他事情

這是一個正確的方法開始?的問題,獨立Y/N回答第一個的

第二部分。我在哪裏定義這些自定義用戶界面元素? - 在視圖的initWithFrame:方法中? - 在單獨的(屬性getter?屬性設置?)方法?即我必須首先在.h文件中聲明每個UI元素作爲屬性嗎?

如果這些問題聽起來有點懵了,那一定是因爲他們:)我發現大量的示例代碼在計算器上,但很少用於指示,你居然把它。我會很感激任何幫助,特別是如果你可以粘貼/引用一些相關的代碼。

+1

你爲什麼要考慮在Xcode之外做這件事?授權?成本?開發環境? Xcode提供的培訓資料非常多,您作爲初學者的工作非常困難。 – GoZoner 2013-03-06 00:22:25

+0

@GoZoner它在哪裏聲明這是在Xcode之外完成的? OP表示他們不想使用Interface Builder。 – rmaddy 2013-03-06 01:10:05

+0

以編程方式構建用戶界面沒有什麼特別的錯誤,而不是像在自行車到處騎車一樣沒有什麼特別的錯誤,而不是使用IB。你會以任何方式到達目的地,但大多數人會說汽車更快,工作也更少。你有避免IB的特別理由,還是它看起來太神祕? (我不是批評那些沒有IB的人,但是在你決定反對之前,你一定要明白,特別是作爲初學者。) – Caleb 2013-03-06 01:23:37

回答

2

您的列表無誤。這是我如何做我的所有應用程序。沒有界面生成器,只是代碼。

每個自定義視圖通常在適當的initXXX方法創建它自己的子視圖。這可能是initWithFrame:,但您可以根據需要定義其他人。子視圖佈局可以通過約束,自動調整掩碼或者通過執行layoutSubview來完成。

每個視圖控制器將實例化在viewDidLoad其所需的意見。視圖佈局可以使用約束,自動調整掩碼或通過實施viewWillLayoutSubviews來完成。

使用特性完全是可選的。爲外部課程設置/獲取任何內容創建公共屬性。可以爲實現內部的值創建私有屬性。

+0

謝謝@rmaddy。這看起來像一個選項。然而,就像在類似的帖子的回答[這裏](http://stackoverflow.com/questions/5668221/working-on-custom-component-subclass-uiview-or-uiviewcontroller?rq=1),定義一個UI元素遍佈整個地方。理想情況下,我想使用initWithFrame:僅通過將各種按鈕和標籤添加爲子視圖來組裝視圖,並在單獨的方法中定義這些UI元素,每個方法一個。因此,如果您想創建一個新的UIButton並在view.m文件中定義其類型,位置,大小,圖像,字體等,您將如何編寫該方法? – artooras 2013-03-06 08:50:53

0

轉到Apple website for Sample Code;下載你可以用於類似於你的目標的應用程序的所有內容。

+0

感謝您的鏈接。儘管有很多示例代碼,但有哪些與我的案例更相關的任何見解,即沒有IB,UIView的子類化? – artooras 2013-03-06 08:13:19

+0

根據框架重新對列表進行排序,然後查看「AppKit」條目。他們中的很多人仍然關注「用戶體驗」主題。 UIViewControllers的子類是非常常見的,UIViews的子類很常見 - 應該很容易找到。 – GoZoner 2013-03-06 14:59:00

相關問題