V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jianleer
V2EX  ›  C

闲来无事,撸了一个标签展示工具 -- CocoaTags

  •  
  •   jianleer · 2015-08-27 17:23:30 +08:00 · 1451 次点击
    这是一个创建于 3165 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Image

    (暂未添加删除功能)

    项目地址: https://github.com/thebookofleaves/CocoaTags

    使用方法

    1 、根据数组初始化

    NSArray *array = @[@"123",@"德玛西亚",@"扭曲丛林",@"百度",@"阿里巴巴",@"Cocoa",@"洁白月光",@"秦时明月",@"花草",@"大圣归来",@"你在干嘛呢",@"碉堡了",@"然并卵",@"纯则脆,阳则钢"];
     CocoaTagView *tagsView = [[CocoaTagView alloc] initWithFrame:CGRectMake (0, 20,CGRectGetWidth (self.view.bounds ), 200 )];
        [self.view addSubview:tagsView];
        [tagsView setTagsWithTagsArray:array];
    

    2 、更新 tags

    [_tagsView updateTags:array];
    
    第 1 条附言  ·  2015-08-27 19:11:42 +08:00
    修复了一个判断英文逗号的 bug ,犯了这么低级的错误。。。不好意思
    第 2 条附言  ·  2015-08-27 22:56:19 +08:00

    增加字符串中同时存在中文逗号和英文逗号的判断

    18 条回复    2015-08-29 00:09:21 +08:00
    jianleer
        1
    jianleer  
    OP
       2015-08-27 17:24:05 +08:00
    ![image]( )
    ayaseruri
        2
    ayaseruri  
       2015-08-27 17:37:13 +08:00
    zhangchioulin
        3
    zhangchioulin  
       2015-08-27 18:15:42 +08:00 via Android
    这个每一个 tag,是 label 还是 button?或是自己写的?
    zhangchioulin
        4
    zhangchioulin  
       2015-08-27 18:26:31 +08:00 via Android
    感觉这个用 label 写 应该会比较简单。可是, tag
    的宽度和 tag 位置是一个问题 要用算法控制
    jianleer
        5
    jianleer  
    OP
       2015-08-27 19:11:01 +08:00
    @zhangchioulin 每一个都是 label , 这些 label 放在了一个 View 上
    menc
        6
    menc  
       2015-08-27 19:41:03 +08:00   ❤️ 1
    这个控件,余光里会有经典的那个小黑点在空白交叉处
    jianleer
        7
    jianleer  
    OP
       2015-08-27 20:21:03 +08:00
    @menc 仔细一看,真有
    ljbha007
        8
    ljbha007  
       2015-08-27 20:25:44 +08:00
    我靠 commit 里还能用 emoji 第一次知道!!

    我还想说的是同样的效果用 html5 至需要 10 行 css
    jianleer
        9
    jianleer  
    OP
       2015-08-27 22:58:11 +08:00
    @ljbha007 如果只是用来展示固定的 tags 10 行左右的代码也可以搞定
    finab
        10
    finab  
       2015-08-28 11:27:34 +08:00
    曾经用 Masonry 实现过一个,
    实现方式是每个 label 都会寻找自己上一个 label (在一个数组中维护)并为自己生成合适的约束
    jianleer
        11
    jianleer  
    OP
       2015-08-28 12:15:06 +08:00
    @finab 是的 Masonry 也可以做
    CommandZi
        12
    CommandZi  
       2015-08-28 13:36:18 +08:00
    这个用 UICollectionView 来实现不是简单得多吗?
    deadEgg
        13
    deadEgg  
       2015-08-28 13:38:41 +08:00
    android 可用 fancybutton 撸类似效果
    jianleer
        14
    jianleer  
    OP
       2015-08-28 17:51:42 +08:00
    @CommandZi 用 UICollectionView 确实可以做,但是在添加标签的时候遇到了一个这样的布局问题,有解决方案吗
    ![Image]( )

    GitHub:https://github.com/thebookofleaves/CocoaPickerByCollectionView
    jianleer
        15
    jianleer  
    OP
       2015-08-28 17:52:35 +08:00
    CommandZi
        16
    CommandZi  
       2015-08-28 23:00:24 +08:00   ❤️ 1
    @jianleer 自定义 UICollectionViewLayout 。
    shiweifu
        17
    shiweifu  
       2015-08-28 23:36:44 +08:00
    我这个带删除 tag ,可以复用:
    https://github.com/shiweifu/SFTagView

    还有我同事的使用 AutoLayout 实现的:
    https://github.com/zsk425/SKTagView
    jianleer
        18
    jianleer  
    OP
       2015-08-29 00:09:21 +08:00
    @shiweifu 谢谢,有时间研究一下

    感谢 @CommandZi
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   888 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:50 · PVG 05:50 · LAX 14:50 · JFK 17:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.