• 弹窗多内容,灵活布局计算方式总结


    之前的礼物弹窗内容个数少,因此老代码的frame只能针对两页,判断条件也是常量,因此无法灵活增加,不支持更多页的扩展。
    最近的需求是扩充礼物数量,在修改时发现了当时的问题,意识到这种可能灵活变更的内容未来会有更多调整。
    所以这次直接将所有常量变更为表达式方式,做成支持N多页面的灵活布局方式。
     
    问题本不复杂,在计算时发现里该类问题的计算思路是通用的,因此记录一下。
    举例:
    当前弹窗为,容器大小固定,单页内容:2行 4列 支持2页
    计划修改为:scrollView作为容器,容器大小灵活,行列数量灵活,支持页数灵活
    布局顺序为:
    0    1    2    3    8      9      10    11
    4    5    6    7    12    13    14    
     
     
    对某一个礼物来说,size固定,需要调整只有origin。因此如何计算X、Y值是关键。
     
    举例两页,序号分别为:
    0    1    2    3    8    9    10    11
    4    5    6    7    12
     
    首先分析X的计算:
    与行状态无关,与列数有关,与间距有关,与页数有关
     
    间距为固定值,无需多余考虑
    要去消减行数的影响,保留列数
    对列数取余
    0    1    2    3    0    1    2    3
    0    1    2    3    0    
    现在还无法表现页数对X的影响,需要再加一个页数的值
     
    首页X的计算为:ScreenWidth *(i/onePageAmount) + widthSpace + i%_column * ButtonWidth;
     
    首先分析Y的计算:
    与行状态有关,与列数无关,与间距无关,与页面无关
    除以列数
    0    0    0    0    2    2    2    2
    1    1    1    1    3
    消减页数的影响,取余行数
    0    0    0    0    0    0    0    0
    1    1    1    1    1
     
    首页Y的计算为:i/_column % _row * ButtonHeight
     
  • 相关阅读:
    第一周2016/9/16
    团队项目计划会议
    电梯演讲视频
    团队项目成员与题目(本地地铁查询app)
    地铁查询相关问题汇总
    延长zencart1.5.x后台的15分钟登录时间和取消90天强制更换密码
    zencart1.5.x版管理员密码90天到期后台进入不了的解决办法
    通过SSH解压缩.tar.gz、.gz、.zip文件的方法
    html标签被div嵌套页面字体变大的解决办法
    zencart批量插入TEXT文本属性attributes
  • 原文地址:https://www.cnblogs.com/huaida/p/11270884.html
Copyright © 2020-2023  润新知