최적화 및 메트릭을 위해 각 사용자가 내 UITableViewCell을 얼마나 오랫동안 보았는지 저장하는 가장 좋은 방법을 찾으려고합니다. 나는 그것을 모니터 할 수있는 도구 (Parse, AppSee 등)를 찾지 못했고, 그래서 나는 수동으로하고있다. 문제는 엄청나게 효율적이지 않다는 것입니다.화면에 UITableViewCell이 표시되는 시간을 모니터링합니다.
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView
{
UITableView *tableView = self.tableView; // Or however you get your table view
NSArray *paths = [tableView indexPathsForVisibleRows];
// For getting the cells themselves
NSMutableSet *visibleCells = [[NSMutableSet alloc] init];
for (NSIndexPath *path in paths) {
NSLog(@"visible: %i", path.row);
[visibleCells addObject:[tableView cellForRowAtIndexPath:path]];
}
}
그러면 NSTimer가 표시되는 즉시 시작하고 더 이상 표시되지 않으면 중지합니다. 이 결함의 수를 가지고 다음의 tableview가 제공되면
- , 사용자는 스크롤하지 않고 첫 번째 셀을 볼 수 있습니다 - 따라서이 코드가 호출되지 않습니다.
- 이 코드는 수십억 초라고 부릅니다. 더 좋은 방법이 있어야합니다.
- 이 코드는 사용자가 두 번째 셀을보고 있지만 첫 번째 셀이 몇 픽셀 만 보이면 호출됩니다 . 따라서 타이머를 활성화하려면 호출이 최소한 20 % 표시되어야하는 조건이 있어야합니다.
- 셀을 보면서 다른 탭 표시 줄을 두드리면 이 코드는 인식하지 않고 계속 카운트합니다 ().
내 솔루션이 분명히 최적이 아닙니다. 더 좋은 방법있으세요? 솔루션을 환영합니다
디스플레이를 시작하고 표시를 중지 할 시간을 저장하십시오. 이 둘의 시차는 당신이 원하는 것입니다. – Volker
이론적으로는 쉽지만이 코드는 최적의 코드를 찾으려고합니다. 어떠한 제안? – anthoprotic