func selectLabelCenter() {
//計算選中label的centerX
let centerX = CGFloat(self.segmentControl.selectedSegmentIndex)*itemWidth + itemWidth/2
//計算出應該偏移的offsetX
var needScrollowOffsetX = centerX - slidingView.width/2
//最小值不能小於0
if needScrollowOffsetX < 0{
needScrollowOffsetX = 0
}
//不能大於最大值(滑動至最右側)
let maxScrollowOffsetX = slidingView.contentSize.width-slidingView.width
if needScrollowOffsetX > maxScrollowOffsetX {
needScrollowOffsetX = maxScrollowOffsetX
}
//不需要滑動時不用滑動
if needScrollowOffsetX != slidingView.contentOffset.x {
slidingView.isUserInteractionEnabled = false
UIView.animate(withDuration: 1.0, animations: {
self.slidingView.contentOffset = CGPoint(x: needScrollowOffsetX, y: 0)
}, completion: { (_) in
self.slidingView.isUserInteractionEnabled = true
})
}
}
Tab選項卡滑動,看算法就行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.