iOS “标签”demo

作者: kunkunm | 来源:发表于2017-03-14 09:23 被阅读231次

    话不多说,先上图:

    biaoqian.gif

    UI结构:UIView + UIButton。灰色的是一个容器视图,橘黄色的“标签”为UIButton。这里为什么要使用容器视图呢?因为在用到“标签”这个功能的地方上下左右很有可能有别的视图,所以使用容器视图可以很好的控制与别的视图之间的位置关系。

    实现这个功能需要借助两个核心变量,btnTotalW 和 btnTotalH,顾名思义,按钮总宽度和按钮总高度。btnTotalW用于判断何时换行,btnTotalH用于改变容器视图的高度。

    设1.目标宽度W(在本demo中为屏幕宽度)
    2.按钮之间间距m
    3.按钮索引n
    4.前一个按钮的 frame 为 lastFrame

    实现思路:实现依赖按钮的frame,关键点在于换行判断。
    1、width使用文字长度;
    2、height给固定值;
    3、x取值分两种情况:
    a.每行第一个按钮 x = m
    b.其他按钮x = CGRectGetMaxX(lastFrame) + m
    4、y取值分两种情况:
    a.第一行按钮 y = m
    b.其他按钮 y = CGRectGetMaxY(lastFrame) + m

    如何换行:
    每添加一个按钮,累加btnTotalW(_btnTotalW += width + m),如果_btnTotalW大于W,则按钮的y值按照上面4b设置。
    换行之后,将btnTotalW重置为width + m,同时累加总高度(btnTotalH += height + m).以此类推。

    代码一共才不到120行,想要demo的私信我吧。请多指教。

    相关文章

      网友评论

        本文标题:iOS “标签”demo

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