惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
Cisco Talos Blog
Cisco Talos Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
美团技术团队
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
月光博客
月光博客
T
Tor Project blog
P
Privacy & Cybersecurity Law Blog
Recorded Future
Recorded Future
I
Intezer
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
GbyAI
GbyAI
罗磊的独立博客
V
V2EX
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
A
About on SuperTechFans
Scott Helme
Scott Helme
Vercel News
Vercel News
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
Recent Announcements
Recent Announcements
Hacker News: Ask HN
Hacker News: Ask HN
C
CERT Recently Published Vulnerability Notes
G
Google Developers Blog
B
Blog
博客园 - 叶小钗
WordPress大学
WordPress大学
博客园 - 聂微东
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Jina AI
Jina AI
IT之家
IT之家
C
Cybersecurity and Infrastructure Security Agency CISA
P
Palo Alto Networks Blog
小众软件
小众软件
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
AWS News Blog
AWS News Blog

Oragekk's Blog

OpenSpec 技术分享:用规格驱动 AI 编程 ChatGPT&Codex订阅教程 一个 waline 评论系统bug引发的思考 Jenkins 远程触发构建踩坑记 Git SSH 密钥配置 初识Rust vuepress-plugin-meting2 谷歌发布多平台应用开发神器Project IDX!PaLM 2加持 Vue常见优化手段 Vue2响应式原理解析 Dart 中的并发 Flutter 工作原理 如何利用GitHub Action提交URL到搜索引擎 提交URL到搜索引擎(百度、Bing、Google) GitHub Actions 使用介绍 素材设计 前端-Q&A 浏览器的事件循环 你不知道的 CSS 之包含块 CSS 属性计算过程 Vercel deploy忽略指定分支 评论插件 Waline 之邮件通知配置 公开API 终端究极美化iTerm2+Pure 使用Bing API提交网站URL Flutter 基础大集合 关于本站 关于本站 关于我 Markdown 展示 使用n命令管理node版本 幻灯片页 ReactNative State(状态) ReactNative开发环境配置,ES6语法介绍 ReactNative介绍 更优雅强大的终端ZSH 神经网络模型训练 YYCache优秀的缓存设计 WebViewJavascriptBridge NSError WCDB漫谈 优雅的实现TableViewCell单选 初探机器学习框架CoreML 深入理解swift中闭包的捕捉语义 ijkPlayer 集成 iOS 配置https iOS Cookie的配置及使用 WKWebView拦截URL WKWebView使用及自适应高度 textfield限制输入字符 评论系统从多说迁移到disqus指南 利用Runtime进行快速归档 iOS 10.3 keychain 重大更新 Cell的accessoryType属性标记单元格之后,出现的重用问题 通过UserAgent判断设备 AFNetworking A memory leak 一人一句宋词 OC 中的枚举类型 iOS - Image compression algorithm iOS程序启动原理(下) iOS程序启动原理(上) NSOperatioin TableView性能优化 Runloop Test Three ways to call Update Cocoapods 1.1.1 减小iOS-App或者静态库体积 Jekyll旧站回忆 JavaScript ES6 CommonJS,RequireJS,SeaJS 归纳笔记 Unix/Linux 扫盲笔记
iOS timelineLogistics
Oragekk · 2017-07-12 · via Oragekk's Blog

timelineLogistics 是模仿淘宝物流信息时间轴界面的自定义 View

效果

Markdown
Markdown

使用正则表达式判断字符是否为电话号码,用 YYLable 进行富文本电话拨打

使用

  • 引入 Masonry,YYkit 库

    • 使用了 MAsonry 进行布局
    • 使用了 YYkit 中的 YYLable 进行富文本电话号码点击拨打电话
  • 初始化数组

      NSArray *titleArr = [NSArray arrayWithObjects:
                   @"[北京通州区杨庄公司锦园服务部]快件已被27号楼e站代签收",
                   @"[北京通州区杨庄公司]到达目的地网店,快件将很快进行派送" ,
                   @"[北京通州区杨庄公司]进行派件扫描;派送业务员:周志军;联系电话:13522464946",
                   @"[北京分拨中心]在分拨中心进行卸车扫描",
                   @"[浙江杭州分拨中心]在分拨中心进行称重扫描",
                   @"[浙江杭州下城区三里亭公司]进行揽件扫描",nil];
      NSArray *timeArr = [NSArray arrayWithObjects:
                  @"2017-07-04 12:59:00",
                  @"2017-07-03 10:59:00",
                  @"2017-07-03 08:22:00",
                  @"2017-07-03 03:34:22",
                  @"2017-07-02 12:59:00",
                  @"2017-07-02 08:10:00",nil];
    ```
  • 转为模型

    for (NSInteger i = titleArr.count-1;i>=0 ; i--)
    {
      OKLogisticModel * model = [[OKLogisticModel alloc]init];
      model.dsc = [titleArr objectAtIndex:i];
      model.date = [timeArr objectAtIndex:i];
      [self.dataArry addObject:model];
    }
  • 初始化控制器

    OKLogisticsView * logis = [[OKLogisticsView alloc]initWithDatas:self.dataArry];
      // 给headView赋值
      logis.wltype=@"已签收";
      logis.number = @"3908723967437";
      logis.company = @"韵达快运";
      logis.phone = @"400-821-6789";
      logis.imageUrl = @"http://pic40.nipic.com/20140420/12064170_201114370112_2.jpg";
      logis.frame = CGRectMake(0, 64, OKScreenWidth, OKScreenHeight-64);
      [self.view addSubview:logis];

Demo下载,如果对你有帮助麻烦点个Star