zoukankan      html  css  js  c++  java
  • 弹窗多内容,灵活布局计算方式总结

    之前的礼物弹窗内容个数少,因此老代码的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
     
  • 相关阅读:
    初始JSON
    JS异步加载的三种方式
    JS之事件
    关于null == 0?返回false的问题
    JS之类型转换
    金融(一)
    使用var声明的变量 和 直接赋值并未声明的变量的区别
    POJ2594 Treasure Exploration
    POJ1422 Air Raid
    Codevs1922 骑士共存问题
  • 原文地址:https://www.cnblogs.com/huaida/p/11270884.html
Copyright © 2011-2022 走看看