我有一个带有动态生成的自定义单元格的tableView,其中一个自定义单元格包含一个可以垂直滚动并且页面控件附加到它的scrollView。
可以在照片中看到tableview的用户界面结构。
我正在刷新scrollViewDidScroll方法中页面控件的位置,如下所示。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSIndexPath *indexPathPageControl=[NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell * cell = (UITableViewCell*)[self.sonDakikaTableView cellForRowAtIndexPath:indexPathPageControl];
CGFloat xOffset = scrollView.contentOffset.x;
CGFloat frameWidth = scrollView.frame.size.width;
int page = floor((xOffset - frameWidth / 2) / frameWidth) + 1;
UIPageControl *pageControl = (UIPageControl *)[cell.contentView viewWithTag:14];
pageControl.currentPage = page; // assigning to pagecontroll
}
当用户在scrollView中垂直滚动时,它工作得很好。
然而,当用户向下滚动tableView并且具有垂直scrollView的单元格不再可见时,整数页面变量将更新为0,当用户向上滚动并且表格视图单元格再次可见时,页面的位置控制正在重置。
如果有人可以告诉我如何防止这种情况,我将不胜感激。
提前致谢。
答案 0 :(得分:0)
我添加了此代码
(void)scrollViewDidScroll:(UIScrollView *)_ scrollView { if(_scrollView == self.tableView)return; 在您的情况下
(void)scrollViewDidScroll:(UIScrollView *)_ scrollView { if(_scrollView == self.sonDakikaTableView)return;