随笔分类 - Objective-C
摘要:很久没动pod,最近更新发现: CocoaPods报CocoaPods was not able to update the `master` repo. If this is an unexpected issue and persists you can inspect it running `
阅读全文
摘要:记录一下。 webview(或wk)用 loadHTMLString加载内容时 ,如果只是单纯的html内容,样式等都写在内部,直接设置baseURL为nil即可。 不过当html里包含外部样式或调用外部js文件时,就需要通过baseurl设置一下路径。 举个最简单例子: 这里的html内部,有一个
阅读全文
摘要:1、功能需求:需要实现图片区域裁剪功能。 2、效果图: 3、实现原理:本来想自己实现的,刚好看到一个比较好的库:TKImageView,下载好研究了下,发现基本都能满足我的需求,而且封装的也比较好。于是自己就顺便仔细研读了下源码,并且稍微修改了下代码,增加了一些必要的注释(原文真的一清二白的注释啊)
阅读全文
摘要:最近有个朋友想做一个pdf预览,要求能够上下滑动翻页、带缩放、目录跳转功能。 因为之前我只做过简单的预览,那时直接用uiwebview实现的,这次找了下资料,发现一个比较好的库。 其原理实现: 自定义uiview来显示pdf+使用的是苹果官方的api读取目录+uiscrollview实现缩放及翻页。
阅读全文
摘要:记录一下: 沙盒文件操作,当需要拷贝文件时,我们可以使用如下类似方式: 其中: 【from路径】没问题,只要保证是原来的文件或文件夹路径正确即可。 【to路径】这里需要注意一点,这个路径copy前,需要保证先创建出来,并且!!不能创建到最后一层。 举例: 1、我要拷贝IMG下的所有图片到一个新的文件
阅读全文
摘要:有个小需求,app需要监听pc广播的数据: 代码实现思路: 使用三方库:CocoaAsyncSocket 1、开启udp监听: udpSocket.beginReceiving() 2、读取udp的数据,包括对方设备的ip func udpSocket(_ sock: GCDAsyncUdpSock
阅读全文
摘要:刚好看到一个刻度尺文章,实现手机屏幕上画刻度尺。 然后就有一个疑问:这个现实中的1mm(1毫米)长度与手机像素之间的换算比怎么来的呢? 看了下demo代码,发现这样写的: 以上这个pmm就是得到的 1mm = pmm像素 何解呢? 原来是这样: 1、根据手机像素值:[UIScreen mainScr
阅读全文
摘要:前言: 在一些特定场景下,我们获取到的音视频,由于格式比较特殊,用avplayer等播放器是无法播放的,此时,我们可以借助强大的VLC播放器来处理。 原理这里不再赘述,下面我们讲一下如何添加VLC播放器代码。 封装功能: 1、视频播放、暂停、重播 2、视频快进、快退(进度条和手势) 3、音量和亮度的
阅读全文
摘要:有时可能会遇到这种错误,关键是这种错误,有时只有这一句话,也不会给更多错误信息。 网上找了一些,总结了如下:(PS:以下是按照解决简易程度排序,不代表出现概率) 1、bitcode问题 解决如下:原因可能是第三方库不支持bitcode 2、TARGET→ General → Deployment i
阅读全文
摘要:前言 一晃Swift3都出来快一年了,从OC到Swift也经历了很多,所以对两者的一些使用区别也总结了一点,暂且记录下,权当自己的一个笔记。 当然其中一些区别可能大家都有耳闻,所以这里也会结合自身的一些平常记录,稍许整理,才诞生了本篇文章,中间或许会有不对之处,还望指出来,共同进步。 正文 一、Sw
阅读全文
摘要:正常情况下,我们自定义的滑动区域都不会太大,否则UI不美观,但是这样,又会手势不灵敏,用户体验变差。 如何解决? 这里有一种方案:封装一个继承UISlider的自定义类,重写thumbRectForBounds方法,原理就是对thumb区域rect进行放大处理。 代码如下: 1、新建一个类,继承UI
阅读全文
摘要:小小圆角问题,正常情况下,我们不需要过多关心,但当屏幕内比较多的时候,还是有必要了解下性能问题的 一、设置CALayer的cornerRadius 这是最常用的,也是最简单的。 cornerRadius属性影响layer显示的background颜色和前景框border,但对layer的conten
阅读全文
摘要:iOS分类: 很多说法是只能添加方法,而不能添加成员变量或属性。 有些人可能知道,这种说法是不严谨的,并不是绝对不能添加变量。 解释如下: 我们知道在一个类中用@property声明属性,编译器会自动帮我们生成_成员变量和setter/getter,但分类的指针结构体中,根本没有属性列表。所以在分类
阅读全文
摘要:很多人可能会问 iOS的分类和扩展的区别,网上很多的讲解,但是一般都是分类讲的多,而这也是我们平常比较常用的知识;但是,对于扩展,总觉得理解的朦朦胧胧,不够透彻。 这里就讲一下我自己的理解,但是这个理解也是集合了前辈的经验来的,只不过我用大白文再延伸一点。 对于类扩展,先看下面的概念: 使用格式:
阅读全文
摘要:一、效果图: 二、选择颜色: 分【固定颜色模式】和【自由取模式】。 三、操作栏功能: 1、撤销:撤销上一步操作,可一直往上进行,直到全部清空。 2、清空:直接清除所有绘画。 3、橡皮擦:去除不要的绘画部分。 4、保存:一键保存相册。 四、实现方式: 贝塞尔曲线结合drawrect绘画。 代码结构:
阅读全文
摘要:JS和OC的交互这是个永恒话题,使用场景也是越来越多,如今一些reactnative、vue框架等,都是在重点结合原生与H5的混合使用。 那么,如何快捷方便的使用两者交互是一个很重要的关键点。 1、传统上的交互使用: - OC调用JS: webView对象通过调用stringByEvaluating
阅读全文
摘要:可能很多人都遇到过这种情况: tableview列表,有时加载完,需要默认选中某一行,给予选中效果;或者需要执行某行的点击事件。 我们举例: 比如我想默认选中第一行 可能我们第一个想法就是这样: 然而你会发现,如果你这样写了,有时候往往是没有效果的,然后就尴尬了。。。 其实,我们执行这句话后,并不会
阅读全文
摘要:不同于WKWebview,wk是有自己的加载进度值的,我们可以直接通过kvo检测到,并显示到进度条内。 但如果我们为了适配ios7,只能使用UIWebview了,这里的加载进度,就比较尴尬了 所以我们的实现方式就是:模拟进度-俗称假进度。 实现原理: 自定义一个UIView的进度条,添加到Nav下方
阅读全文
摘要:早上和UI刚谈到这个需求,然后自己试了一下,发现还是蛮简单的,记录一下: 思路分析: iOS内应用之间跳转都会用到 URL Schemes这个东西,简单的讲,这个就是用来定义app身份的一个id识别,这里定义了之后,手机运行过这个app之后,会在系统内部记录下这里的身份识别,下次,其他app想访问该
阅读全文
摘要:理解这个概念之前,先抛出一个问题 问题描述: 假设现在系统有两个空闲资源可以被利用,但同一时间却有三个线程要进行访问,这种情况下,该如何处理呢? 或者 我们要下载很多图片,并发异步进行,每个下载都会开辟一个新线程,可是我们又担心太多线程肯定cpu吃不消,那么我们这里也可以用信号量控制一下最大开辟线程
阅读全文