#pragma mark - 监听
- (void)titleClick:(XMGTitleButton *)titleButton
{
self.clickedTitleButton.selected = NO;
titleButton.selected = YES;
self.clickedTitleButton = titleButton;
[UIView animateWithDuration:0.25 animations:^{
self.titleUnderlineView.width = titleButton.titleLabel.width;
self.titleUnderlineView.centerX = titleButton.centerX;
}];
CGPoint offset = self.scrollView.contentOffset;
offset.x = titleButton.tag * self.scrollView.width;
[self.scrollView setContentOffset:offset animated:YES];
//不是人为拖拽scrollView导致滚动完毕,会调用scrollViewDidEndScrollingAnimation这个方法
}
#pragma mark - <UIScrollViewDelegate>
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
int index = scrollView.contentOffset.x / scrollView.width;
UIViewController *willShowChildVc = self.childViewControllers[index];
if (willShowChildVc.isViewLoaded) return;
willShowChildVc.view.frame = scrollView.bounds;
[scrollView addSubview:willShowChildVc.view];
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
int index = scrollView.contentOffset.x / scrollView.width;
[self titleClick:self.titleButtons[index]];
[self scrollViewDidEndScrollingAnimation:scrollView];
}