我試圖以最好的方式重構我的代碼,我想知道給定情況的適當架構是什麼。UIView或UIViewController子類?
我正在嘗試做
我在做什麼是很簡單:我有一些自定義的CALayer
子類表示交互UI元素。由於UI的某些部分是靜態的,因此它們分成多個層次,所以我不想不必要地重繪那些靜態元素。目前,這些圖層作爲CustomView
類的初始化部分中的子圖層添加,該類是UIView
的子類。
目前沒有相應CustomViewController
類是UIViewController
一個子類,因爲當我使用CustomView
,它包含一個UITableViewCell
或通用的UIViewController
與它的其他意見的一部分中,所以我覺得另一個UIViewController
對於每個CustomView
實例將是多餘的。
同樣重要的是,我在UIView
類中做的唯一操作是響應觸摸事件並將觸摸信息發送到子層,以便UI可以相應地更新其外觀。我不是覆蓋drawRect
方法或類似的東西。
問題
基本上,我想弄清楚我是否應該:
選項1:
擺脫CustomView
類,創建一個類CustomViewController
這是UIViewController
的子類,並且只需將CALayer
對象作爲CustomViewController
的內置view
屬性的子圖層。
或
選項2:
我對UIViewController
子是多餘的想法是正確的,所以我要離開它,我有它的方式,有一個CustomView
類內的CALayer
對象它。
我非常感謝任何關於此的建議。
我已經完成了與以前完全相同的操作。我也用UIViewController來完成它。只要代碼是可維護和高性能的,那麼我想它並不重要。 UIViewController是(我猜)是這樣做的更正確的方法,但它也可能會妨礙性能,特別是如果你把它放在UITableViewCell中,並且可能有很多。 – Fogmeister
感謝您的快速響應。很高興聽到我沒有用當前實現的非'UIViewController'方式。 –