最近打算做一下项目组件化,所以先要夯实基础,自制一下framework!公司项目中遇到TableView和CollectionView无数据的情况,各种无数据视图代码copy来copy去的,无比难过!这个framework就做列表无数据视图的功能!1,首先创建工程,选择iOS->Cocoa Touch Framework,如下图所示:1.1 选择平台,搜索framework,这里我选择的是i
UIImage是用来处理图像数据的高级类, UIImageView 是 UIKit 提供的用于显示 UIImage 的类。若采用 MVC 模型进行类比, UIImage 可以看作模型对象( Model ), UIImageView 是一个视图( View )。它们都肩负着各自的职责:UIImage负责加载图片内容, UIImageView 负责显示和渲染它。 这看似是一个简单的单向过程
ios中我们写的代码有时不愿意让别人看到,可能对它进行封装,生成一个静态库如典型的.a,还有一种就是和苹果自带的库一样的后缀名为.framework的库,个人推荐使用.framework,因为.a不仅要装其添加进去,还要将对应的头文件添加到项目中。1.新建一个静态库工程。file--new--project,弹出框中选择Ios--framework&library中的cocoa touch
转载 9月前
48阅读
考察如下应用:   公司开发某种中间件产品,该产品的主要功能是从上位系统采集数据,并将采集到的数据做某种处理,然后下发到下级系统中。要求该产品要支持不同类型,不同数量,不同数据格式的上位系统,下发时统一发送符合某种规则或格式的数据流。此外,在增加或删除对某一上位模块支持的时候,无需从新编译该中间件产品。本文讨论不同类型,不同数量,不同数据格式的上位系统,在
   动态库与静态库的制作流程基本一样,包括头文件的暴露等,唯一不同的是Mach-O文件的编译形式。  1、这里要选Framework,如果选择右边的Static Library制作出来的是framework静态库。    导入所有要打包的文件。  2、将头文件公布出去,供外界使用,所有的
转载 11月前
139阅读
新建Framwork工程早期xcode可以创建.a的静态库或.dylib的动态库,现在(2017.1)一般直接创建Framework工程。 打开xcode,file-new-project,选择Cocoa Touch Framework就可以创建一个framework工程了。 新建工程 创建完成后默认的framework是动态库,点击Bu
近日学习了延迟执行的几种方法,分享一下. 1.performSelector(NSObject)方法  2.NSTimer方法  3.GCD方法  4.sleep(NSThread)方法延迟执行代码: - (void)delayDo : (id)sender { NSLog(@"do:%@",sender); } 1.performSelector(NSO
前言:ID作为一款以IM为基础的办公软件,在用户使用过程中,经常会遇到一些超大的或者超高分辨率的图片(以下统一称:大图)。基于SDWebImage为基础的图片加载控件,在遇到此情况时,并没有提供十分有效的解决方法(如果你谷歌或者百度,有很多回答,但实际并未能解决此问题)。曾经一度困扰许久。现在将我的解决方式写下来,希望可以对你有所帮助。参考:作为IM软件的领军,QQ与微信无疑给IM行业树立了一个很
前言一张图片从引入project中,到最后展示在用户面前,经历了许多环节。其中压缩解压缩就是一个值得我们探究的环节。开始之前,我们需要了解一些基本的图像原理。平时开发中接触的最多的当属png格式的图片,其次就是jpg。这两种文件格式本质上是图片的压缩格式。区别在于png是无损压缩,支持alpha通道,也就是透明,而jpg是有损压缩。事实上,UIKit中就有两个API来生成png和jpg// ret
一、静态库与汇编生成的目标文件一起链接为可执行文件。一个静态库可以简单看成是一组目标文件(.o/.obj文件)的集合,即很多目标文件经过压缩打包后形成的一个文件。静态链接库,以.a 为文件后缀名(PC下是.lib)。特点如下:静态库对函数库的链接是放在编译时期完成的。程序在运行时与函数库再无瓜葛,移植方便。浪费空间和资源,因为所有相关的目标文件与牵涉到的函数库被链接合成一个可执行文件。二、动态库在
转载 10天前
29阅读
加载,就是滑动Viewpager的过程中,当fragment显示的时候才去加载数据,但是由于ViewPager的预加载机制,会提前初始化左右两边的fragment,那么,要想实现懒加载,就需要一些骚操作了骚一、既然Viewpager有个setOffscreenPageLimit(int limit)方法,那么是不是我们就可以直接将里面的参数设置为0,让他不预加载页面不就可以嘿嘿嘿了,我只想说,小
写于2015年12月3日不同的android版本,不同的framework实现,framework有近2亿行代码,版本越高,代码行数越大,这个过程是很痛苦的。所以不要去学习和阅读framework的源代码。阅读它的源代码,还不如去学英语,多看应用层的API,多看理财的书籍。如果不做framework开发,做app开发的话,看了framework的代码对app开发的帮助是很少的,公司不会因为这个而给
转载 2023-07-29 20:13:22
95阅读
         UIImage 存在 延迟解压的问题。这会占用时间。       一旦图片文件被加载就必须要进行解码,解码过程是一个相当复杂的任务,需要消耗非常长的时间。解码后的图片将同样使用相当大的内存。       用于加载的CPU时间相对于解码来说根据图片格式而不同。对于
最近在做一个ipad项目,项目里有好多的大图片。项目运行起来后,浏览一些图片后,内存就开始暴涨。涨到500多兆,根本看不下去啊。为了解决这个问题,开始寻找各种解决方案。还好最终算是找到了。下面分享一下。图片过大,内存暴涨。我是从两个方面着手解决的。一 :从图片入手 内存占用大原因是图片太大,所以想到对图片进行压缩。找了好多压缩工具,最后发现一款比较好用的,名字是ppDuck(pp鸭),这里是下载
转载 2023-08-29 13:40:54
294阅读
网络图片显示大体步骤:1、下载图片;2、图片处理(裁剪,边框等);3、写入磁盘;4、从磁盘读取数据到内核缓冲区;5、从内核缓冲区复制到用户空间(内存级别拷贝);6、解压缩为位图(耗cpu较高);7、如果位图数据不是字节对齐的,CoreAnimation会copy一份位图数据并进行字节对齐;8、CoreAnimation渲染解压缩过的位图。以上4、5、6、7、8步是在UIImageView的setI
记录svg使用学习:svg 全局使用,并后期添加的 svg 可直接根据规则使用。什么是svg ?使用SVG是一种用XML定义的语言,用来描述二维矢量及矢量/栅格图形。用XML格式定义的矢量图。关于阿里iconfont库的 svg支持多色图标了,不再受单色限制。通过一些技巧,支持像字体那样,通过font-size,color来调整样式。兼容性较差,支持ie9+,及现代浏览器。浏览器渲染svg的性能一
转载 10月前
237阅读
使用 UITableView 时,发现滚动时的性能还不错,但来回滚动时,第一次显示的图像不如再次显示的图像流畅,出现前会有稍许的停顿感。于是猜想显示过的图像肯定是被缓存起来了,查了下文档后发现果然如此。在《Improving Image Drawing Performance on iOS》一文中找到了一些提示:原来在显示图像时,解压和重采样会消耗很多 CPU 时间;而如果预先在一个 bitmap
正确选择图片加载方式能够对内存优化起到很大的作用,常见的图片加载方式有下面三种: //方法1 UIImage *imag1 = [UIImage imageNamed:@"image.png"]; //方法2 UIImage *image2 = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResourc
# iOS开发 framework读取不到图片解决方案 ## 一、问题描述 在iOS开发中,开发者常常会使用framework来组织自己的代码和资源,但有时在使用framework时,可能会遇到无法读取到图片的问题。 ## 二、解决方案流程 为了解决这个问题,我们可以按照以下步骤进行操作: | 步骤 | 操作 | | --- | --- | | 1 | 将图片资源添加到framework
原创 10月前
191阅读
一、storyboard连线问题产生原因:将与storyboard关联的属性删除了,但是storyboard中还保持之前所关联的属性。解决:  1、点击view controller  2、点击这排最后一个按钮  3、会出现  4、发现感叹号。点击感叹号的左边的x,取消关联就不会报错了。二、文本框中怎么输入显示类似输入密码时候的东东。解决:勾选这个三、输入文本的时候,怎么显示右边的X按钮1.点击2
  • 1
  • 2
  • 3
  • 4
  • 5