iOS 滑动标签居中的方法

gif.gif

很久之前的一个小算法,在这里MARK一下

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
            })
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 梗来源于基友想要寻找动漫的描述,其实就是一篇傻白甜,以及必然的OCC,请轻拍以及善用只看该作者 以下正文 001 ...
    晏怀瑾阅读 7,736评论 5 18
  • 2014年微商发展,芳大集团就相当注重多渠道发展,通过发展线下渠道一直以来都是非常好的渠道,因为线下有固定的流量,...
    吴小芳本人阅读 5,219评论 0 1
  • 这是一本我很喜欢的书。杨绛先生在书中描述了一家三口日常温馨有趣的日常,让我这个好奇大文学家生活到底是怎样...
    徐昕怡阅读 3,126评论 6 4
  • 自去年独自去好姐妹那待了一个月后,我就来到了父母所在的城市,一呆又是两年。 姐姐和姐夫都在,我很快的在这个海岛城市...
    糖棠C阅读 1,630评论 0 0
  • 今天在捣鼓 Chrome 设置,突然看到一个 Live Sass ,这是什么鬼,难道 Chrome 原生支持 Sa...
    畵毣阅读 5,078评论 3 3

友情链接更多精彩内容