2016-07-11 1 views
0

iOS 개발에서 우리는 항상 다양한 셀 뷰를 만났습니다. 두 가지 방법이 있습니다. 사실이 모드를 실현합니다 ... ... 때때로 사람들은 항상 셀 뷰를 제공하지만, 캐스팅 비트가 필요하다는 것을 알고 있습니다. . 하나의 부적절한 태깅 된 뷰와 결합하면 결과적으로 런타임 오류가 발생합니다 ... .. 알고 있습니다 태그는 하드 코딩 된 종속성을 줄이고보다 동적이고 유연한 솔루션을 지원하는 유용한 방법입니다. 뷰에 대한 포인터를 저장하는 대신 태그를 사용하여 포인터를 찾을 수 있습니다. 태그는 뷰를 더 지속적으로 참조하는 방법이기도합니다. 는 예 :셀의 다양한 뷰를 모두 액세스 할 때 가장 좋은 성능은 어느 것입니까?

let bookCoverLabel = cell.viewWithTag(1) as! UILable 
label.text = icon.title. 

다른 방법은 당신이 직접 콘센트 따라서 귀하의 모든 다양한 뷰에 액세스 할 수 있습니다, 셀의 인터페이스에 훅 제공 할 수있는 jQuery과 subclass.In ...

하나를 만드는 것입니다 : 만들기 서브 클래스

class coverTableViewCell:UITableViewCell 

둘째, 정체성 세에서 셀의 클래스를 설정 : 콘센트에 파단을 연결

@IBOutlet weak var coverImageView:UIImageView! 

당신이 필요로하는 셀을 사용자 정의하기위한 간단한 과정입니다. 대부분의 개발자는 항상 그렇게합니다 ...하지만 여기서 한 가지 질문하고 싶습니다 - 성능은 어떻게되는지 ......... 아마도 어리석은 질문 일 수 있습니다. 더 ...... ......

답변

1

태그 또는 사용자 정의 클래스를 사용하는 동안 성능 차이는 없습니다. 결국 특정보기 또는 구성 요소에 대한 객체를 만들고 해당 객체를 통해 액세스하게 될 것이기 때문입니다. 태그 또는 콘센트는 해당 구성 요소를 가리 킵니다.

그러나 숫자를 기억하기가 싫어서 태그를 사용하는 것을 선호하지 않습니다 !!! 또한 iOS 7이 도입되었을 때, tableview 셀은 iOS 6에는 없었던 컨테이너 뷰와 함께 제공되었으므로 태그를 사용한 뷰는 출력으로 적절한 뷰 또는 구성 요소를 제공하지 않아서 태그를 사용하는 개발자들에게 지옥이되었습니다. . 그 당시 맞춤 클래스를 사용하는 것이 좋았습니다 : D.

맞춤 클래스를 사용하는 경우 콘센트를 바인딩하고 콘센트에만 액세스하면됩니다. 그리고 그 숫자를 기억할 필요가 없습니다. D.

나를 위해 항상 맞춤 클래스를 사용하는 것이 편리합니다. 그래서 나에 따르면 두 가지 방법 모두에서 큰 차이는 없지만 나는 커스텀 클래스를 선호한다.

이 바보 같은 대답을 할 수 있지만이 당신에게 도움이 될 수 있습니다 :

태그는 항상 관련 position.It에 충족 무시 그래
0

이 좋지 않아보기 :

희망의 내 포인트입니다 이 방법은 현재보기와 지정된보기에 대한 모든 하위보기를 검색합니다. 여기에 태그가 더 많으면 성능이 떨어질 것입니다. 그래서 우리는 다시 사용하지 않습니다. 완전히 폐기하십시오. - 참고 용으로 만 ...

관련 문제