2014-09-25 3 views
0

내 프로젝트에 각 셀마다 동적 테이블이 있습니다. 레이블 아래에 해당 레이블 아래에 VisualEffectView 효과를 적용하고 싶습니다. 현재는 cellForRowAtIndexPath를 사용하고 있지만 이해합니다. 그 이벤트는 셀이 테이블에 집중할 때마다 반복됩니다.cellForRowAtIndexPath를 사용하지 않는 방법

나는 내 테이블에 얼마나 많은 아이템을 가지고 있는지 계산하고 싶습니다. 항상 그 레이블이있을 것입니다. 그 아래에 나는 그 효과를 적용 할 것입니다. 내 viewDidLoad 메서드에서 이런 식으로 시도했다 :

for (UILabel *v in self.myCell) { 

    [v setText:@"Holaaa"]; 
} 

나는 이것을 시도했다.

조언이 있습니다.

+0

또한, 이렇게하면 반복적으로 효과를 내 테이블이 느려집니다. – outime

+0

셀에 포커스가있을 때마다 'cellForRowAtIndexPath :'가 호출되지 않습니다. 테이블에 셀을 표시해야 할 때마다 호출됩니다. – rmaddy

+0

글쎄, awakeFromNib 메서드에 대한 내 사용자 지정 셀에서 나는 그 효과를 완벽하게 작동합니다. 내가 제대로하고 있니? – outime

답변

0

tableView는 몇 개의 셀을 생성 한 다음 사용자가 스크롤하면서 재사용합니다.

따라서 cellForRowAtIndexPath는 이라고하며 사용자가 스크롤 할 때 많은 번이 호출됩니다. 이제 UIVisualEffect에 익숙하지 않지만 cellForRow에서이 코드를 사용하면 세포가 재사용 될 때마다이 시각 효과보기 을 추가 할 것으로 가정하므로 느리게 만듭니다.

awakeFromNib가 느린 이유는 번을 번만 셀에 추가했기 때문입니다. awakeFromNib 또는 init은 셀을 재사용 할 때마다 한 번만 추가하기를 원하기 때문에이 뷰를 추가하는 것이 더 좋습니다.

관련 문제