【发布时间】:2014-06-18 14:03:35
【问题描述】:
我有一个带有动态生成的自定义单元格的 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,并且当用户向上滚动并且表格视图单元格再次可见时,页面的位置正在重置控件。
如果有人能告诉我如何预防这种情况,我将不胜感激。
提前致谢。
【问题讨论】:
标签: ios objective-c uitableview uiscrollview uipagecontrol