어떻게하면 셀의 imageView 속성을 하나씩 만들 수 있습니까?셀 이미지 뷰를 애니메이션으로 바꿔 넣으십시오.
나는 이제 비행을 할 수 있지만, 한 번에 모두 비행 할 수 있습니다.
그리고 성능이 이렇게 좋을까요?
어떻게하면 셀의 imageView 속성을 하나씩 만들 수 있습니까?셀 이미지 뷰를 애니메이션으로 바꿔 넣으십시오.
나는 이제 비행을 할 수 있지만, 한 번에 모두 비행 할 수 있습니다.
그리고 성능이 이렇게 좋을까요?
indexPath.row
을 사용하여 지연을 계산하십시오.
float animationDelay = 0.2f;
[UIView animateWithDuration:0.3f
delay:animationDelay * indexPath.row
options:0
animations:^{
cell.imageView.transform = CGAffineTransformMakeScale(1.0f, 1.0f);
} completion:^{}];
이렇게하면 모든 행이 그 위의 행에 비해 0.2 초 지연됩니다. 물론 이것은 처음 테이블을로드 할 때만 작동하지만, 이것이 애니메이션으로하려는 것입니다. 스크롤을 시작하고 새 셀이로드되면 지연을 0으로 설정해야합니다. 그렇지 않으면 이미지가 표시되는 데 시간이 걸립니다.
내가합니다 (init
또는
awakeFromNib
방법에서) 처음
YES
로 설정
loadingTheFirstTime
라는
BOOL
바르를 도입하는 것이 좋습니다이를 달성합니다. 그런 다음 테이블이 처음 표시 될 때
NO
으로 설정할 수 있습니다. 셀을 만들 때이 변수를 먼저 확인하여 지연을 추가해야하는지 확인해야합니다.
모든 셀을 통과하여 루프를 통해 매번 애니메이션을 실행하는 for 루프가있는 메소드를 설정할 수 있습니까? 공연과 관련해서는 전혀 모른다. 퍼포먼스에 좋을 것이라고 상상하지 못할 것입니다. 특히 많은 세포가있는 경우에는 그렇습니다. 그러나 항상 시도하고 알아낼 수 있습니다! :)
나는 당신이 cellForRowAtIndexPath:
에 있다고 여기에서 생각했다. 애니메이션을 다음과 같이 변경하십시오.
[UIView animateWithDuration: 3.0
delay: indexPath.row
options: UIViewAnimationCurveLinear
animations: ^{
cell.imageView.transform = CGAffineTransformMakeScale(1.0f, 1.0f);
}
completion:^(BOOL finished) {
}];
애니메이션은 1 초 간격으로로드됩니다. 이 기능을 사용하지 않는 경우 셀을 만들 때 태그를 셀에 설정하고 해당 태그를 지연에 넣으십시오.
젠장! 나는 화상을 입었다 ... :) – rdurand
에픽 맨, 고마워! :) – Devfly