제목이 혼란스럽게 들릴 경우 미안하지만 더 좋은 것은 없습니다.두 가지 다른보기 유형을 처리 할 수있는보기 컨트롤러 구현
기본적으로 데이터베이스에서 가져온 여러 이미지를 표시하는 페이징 스크롤보기를 관리하는보기 컨트롤러가 있습니다. 저는 MVC를 처음 사용하고 있으며, 가능한 한 최선의 방법으로이 패턴을 따르는 코드를 작성하려고했습니다. (내 경험은 단순히 다른 사람들의 코드를보고 Apple 클래스가 작동하는 방식을 기반으로하므로 결함이있을 수 있습니다. 나는 그것이 당신에게 말해 줄 수 있다면 감사 할 것입니다.)
이것은 내가 한 일입니다. UIScrollView
이 포함 된 사용자 정의보기 클래스가 있고 두 개의 공용 속성 인 dataSource
과 delegate
이 있습니다. 데이터 소스 객체는 정의한 프로토콜을 준수해야합니다. 이미지의 수와 이미지 자체를 반환합니다. 선택한 페이지가 변경되면 대리인에게 알림이 전송됩니다.
나는 그것을 올바르게 얻었기를 바랍니다. 어쨌든 그것은 작동합니다. 필요한 경우 데이터 소스를 아무 문제없이 다시 구현할 수 있으며 데이터를 제공하는 코드는이를 표시하는 코드와 분리되어 있습니다.
하지만 문제가 있습니다. 페이징 스크롤 뷰를 가능한 적은 코드로 복제하여 CoverFlow와 같은 뷰로 대체 할 수 있어야합니다. 이 CoverFlow보기를 사용하여 다른보기 컨트롤러 클래스를 만들지 않고도이 작업을 수행하는 더 좋은 방법이 있어야한다는 것을 알고 있습니다. 두 개의 뷰 클래스는 비슷한 방법으로 작동하며 비슷한 방식으로 작동하므로 복제하는 대신 동일한 뷰 컨트롤러 코드를 사용하는 것이 좋습니다.
아마도 generic 메서드로 추상 클래스를 작성하고 두 가지 구현 (하나는 스크롤 뷰, 다른 하나는 CoverFlow 뷰)을 작성한 다음 전달 된 매개 변수를 기반으로 컨트롤러에서 두 인스턴스 중 하나를 인스턴스화 할 수 있습니다. 그것. 이것을 달성하는 가장 좋은 방법입니까?
이 내용이 너무 혼란스럽지 않고 내 접근 방식에 결함이 없기를 바랍니다. 감사.