热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

03-UITableView索引栏显示自定义图片

如果对iOS开发感兴趣,可以来黑马程序员学习iOS:黑马程序员1.1-系统API有没有提供相关的属性或者代理呢?1.2-自定义View作为索引栏1.3-使用NSString显示图片原理

如果对iOS开发感兴趣,可以来黑马程序员学习iOS:黑马程序员

  • 1.1-系统API有没有提供相关的属性或者代理呢?

  • 1.2-自定义View作为索引栏

  • 1.3-使用NSString显示图片原理

    • 1.3.1-直接在输入法输出表情
    • 1.3.2-使用十六进制的Unicode编码显示表情
    • 1.3.3-使用二进制创建字符串显示自定义图片
  • UITableView是iOS系统中使用率最高的一个控件,最为UI基础中最重要的一个控件,相信很多有过iOS开发经验的人都对它的属性和用法了如指掌

    • 那么在市场的APP中,有一些APP的UItableView的索引栏显示一个图标是如何实现的呢?

1.1-系统API有没有提供相关的属性或者代理呢?

  • 实际上UITableView的索引栏是一个指向字符串NSString的泛型数组,并不能直接显示图片

  • 1.UITableView的API中与索引栏相关的属性

这里写图片描述

  • 2.UITableView的API中与索引栏相关的代理

这里写图片描述

  • 3.效果展示

这里写图片描述

1.2-自定义View作为索引栏

  • 这种方式是可行的,但是工作量太大,同时该方式也是目前市场上比较常用的方式

1.3-使用NSString显示图片原理

  • NSString和图片有一个共同点:在底层都是二进制
    • 本篇博客就从简单到复杂,解开字符串显示图片的神秘面纱*

1.3.1-直接在输入法输出表情

这里写图片描述

  • 原理探究:为什么NSString能够直接显示键盘敲出的表情符号呢?
    • 这主要因为我们敲出的表情属于emoji表情,而emoji表情又属于Unicode编码

1.3.2-使用十六进制的Unicode编码显示表情

  • emoji表情代码大全:http://www.fuhaodq.com/biaoqingfuhao/1531.html
    • emoji表情本质上其实就是两个字节的十六进制表示的Unicode编码*

这里写图片描述

这里写图片描述

1.3.3-使用二进制创建字符串显示自定义图片

  • 注意
    • 1.这里Unicode表情是两个字节,所以字符串用的是UTF16编码(一个字节byte8个位bit),实际中的编码要根据图片实际的字节数选择编码
    • 2.实际开发中,可以让UI把图片设计好,交给后台转成二进制然后直接发给客户端即可,这里我没有服务器环境,所以我就手动拼接了一个本地的二进制

“`objc

//返回索引栏数组
- (NSArray


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文详细介绍了PHP中与URL处理相关的三个函数:http_build_query、parse_str和查询字符串的解析。通过示例和语法说明,讲解了这些函数的使用方法和作用,帮助读者更好地理解和应用。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 前端性能优化无损压缩webp格式的图片
    一、什么是webpWebP格式,谷歌开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的23,并能节省大量的服务器宽带资源和数据空 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
author-avatar
手机用户2502869561
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有