최선의 방법으로 코드를 리팩토링하려고하고 있는데, 주어진 상황에 적합한 아키텍처가 무엇인지 궁금합니다. 내가 뭘하는지UIView 또는 UIViewController 하위 클래스?
를 수행하기 위해 노력하고있어
은 매우 간단하다 : 나는 대화 형 UI 요소를 대표하는 일부 사용자 지정 CALayer
서브 클래스가 있습니다. UI의 일부는 정적이기 때문에 여러 레이어로 나뉘어져 있으므로 정적 요소를 불필요하게 다시 그리기를 원하지 않았습니다. 지금은 UIView
의 하위 클래스 인 CustomView
클래스의 초기화 부분에서 하위 레이어로 레이어가 추가됩니다.
현재 내가 CustomView
를 사용하고있을 때, 그것이 UITableViewCell
또는 다른 경관을 감상 할 수있는 일반적인 UIViewController
의 일부에 포함 있기 때문에 UIViewController
의 서브 클래스가 CustomViewController
클래스를 해당 없는있다, 그래서 나는 또 다른 느낌 각 CustomView
인스턴스에 대해 UIViewController
이 중복 될 수 있습니다.
UIView
클래스 내부에서 수행하는 유일한 작업은 터치 이벤트에 응답하고 UI가 모양을 적절하게 업데이트 할 수 있도록 하위 레이어에 터치 정보를 보내는 것입니다. 나는 drawRect
메소드 또는 그와 비슷한 것을 오버라이드하지 않을 것이다.
옵션 1 :
CustomView
클래스 없애하는 CustomViewController
클래스를 생성
[질문 기본적으로
는, 나도 내가해야하는지 여부를 알아 내려고 노력하고있어 즉 UIViewController
의 하위 클래스이며 CustomViewController
에 내장 된 view
속성의 하위 레이어로 CALayer
개체를 추가하기 만하면됩니다.
또는
옵션 2 :
UIViewController
서브 클래스가 중복되는 대한 내 생각이 올바른지, 그래서 내가이 길을 떠나의 내부 CALayer
객체와 CustomView
클래스를 가져야한다 그것.
나는 이것에 대해 조언 해 주시면 고맙겠습니다.
나는 과거와 똑같이 해왔다. 나는 또한 UIViewController 그것을했습니다. 코드가 유지 보수 가능하고 성능면에서 중요하지 않은 것 같습니다. UIViewController이 일을 더 "올바른"방법을 추측하지만 그것은 또한 특히 UITableViewCell 내부에 배치하는 경우 성능이 저하 될 수 있으며 거기에 많은 수 있습니다. – Fogmeister
빠른 응답을 보내 주셔서 감사합니다. 반가워요. 'UIViewController '가 아닌 방법으로 현재 구현되고 있습니다. –