美文网首页
实现iOS s弯列表的思路解析

实现iOS s弯列表的思路解析

作者: 大牛大神 | 来源:发表于2022-11-03 16:56 被阅读0次
    实现效果

    思路  

    1,利用scrollerView上下滑动的特效 当做背景view

    2,用过对数组内每个站点的计算  使奇数行(1行3行5行)的view的x和y是从左往右

    3,使偶数行的五个站点  第一个的x加5的距离,第二个加4的距离,这样,偶数行的view是从右往左排列

    4,使每五个view的y比上五个view的y加一倍距离

    6,for循环把计算好x和y的view添加到scrollerView上

    7,连线 最后连线按照view的顺序连线就行了。

    代码↓

    funcgetStationPoint(_stationCount:Int)->[CGPoint]

        {

            varlist = [CGPoint]()

            //var k = 1

            letpt =CGPoint(x:colWidth,y:colWidth)

            letstationNum = stationCount

            varp:CGPoint= pt

            letr = stationNum /5

            foriin0..< r

            {

                if i%2 == 0 // odd row  2 4  6  8

                {

                    for  jin0..<5

                    {

                        p.x= pt.x+CGFloat(j *colWidth)

                        p.y= pt.y+CGFloat(i *rowHeight)

                        list.append(p)

                    }

                }

                else //even row  1 3 5 7  9

                {

                    forjin0..<5

                    {

                        p.x=CGFloat(5*colWidth) -CGFloat(j*colWidth)

                        p.y= pt.y+CGFloat(i *rowHeight)

                        list.append(p)

                    }

                }

            }

            //last row

            forjin0..< stationNum-r*5

            {

                ifr%2==0// odd row

                {

                    p.x= pt.x+CGFloat(j *colWidth)

                    p.y= pt.y+CGFloat(r *rowHeight)

                    list.append(p)

                }

                else

                {

                    p.x=KScreenWidth- pt.x-CGFloat(j *colWidth)

                    p.y= pt.y+CGFloat(r *rowHeight)

                    list.append(p)

                }

            }

            scrollBottom = p.y + CGFloat(rowHeight)

            scrollerView.contentSize = CGSize(width: KScreenWidth ,height: p.y + CGFloat(colWidth)*2)

            block?(p.y+CGFloat(colWidth)*2)

            returnlist

        }

    相关文章

      网友评论

          本文标题:实现iOS s弯列表的思路解析

          本文链接:https://www.haomeiwen.com/subject/tjsetdtx.html