思路:
1.一个UIview 上面添加scrollview ,标题在设置titleArray,添加lable,并且标记,注意位置改变后,当scrollview.contentSize.width大于UIview的宽度,需要判断,对scrollview进行滚动
[UIView animateWithDuration:0.3 animations:^{
[self setLineViewFrameWithIndex:index];
}completion:^(BOOL finished) {
CGPoint point = self.baseScrollView.contentOffset;
CGPoint lineViewToSelfPoint = [self.lineView.superview convertPoint:self.lineView.center toView:self];
//如果没有充满屏幕,不滚动
if (self.baseScrollView.contentSize.width < self.w ) {
return ;
}
//把当前的滑动到中心点的距离
CGFloat toScrollViewCenter = lineViewToSelfPoint.x - self.baseScrollView.center.x;
if (toScrollViewCenter <0) {//要向右边滑动contentOffset.x >=0
// 这里表示scrollView向右滑动
point.x += toScrollViewCenter;
// 但是向右滑动不能小于0,否则将会出现第一个 也向右偏移
if (point.x <0) {
point.x = 0;
}
}else {//向左滑动 contentOffset.x <= relationValue
//这里表示向左滑动
//这个是最大的偏移X量
CGFloat maxOffX = self.baseScrollView.contentSize.width - self.baseScrollView.gtt_width;
point.x += toScrollViewCenter;
// 如果向左滑动超出了它的最大偏移量
if (point.x>maxOffX) {
point.x = maxOffX;
}
}
[self.baseScrollView setContentOffset:point animated:YES];
}];