现在位置: 首页 > iOS
2020年02月18日 编程语言 ⁄ 共 6257字 评论关闭

iOS实现UIScrollView的无限轮播功能(原理)详解 前言 同学们在写需求的时候肯定会时常用到UIScrollView. UIScrollView控件是什么? (1)移动设备的屏幕⼤大⼩小是极其有限的,因此直接展⽰示在⽤用户眼前的内容也相当有限 (2)当展⽰示的内容较多,超出⼀一个屏幕时,⽤用户可通过滚动⼿手势来查看屏幕以外的内容 (3)普通的UIView不具备滚动功能,不能显⽰示过多的内容 (4)UIScrollView是一个能够滚动的视图控件,可以⽤用来展⽰示⼤大量的内容,并且可以通过滚 动查看所有的内容 (5) 举例:手机上的"设置

阅读全文
2020年02月18日 编程语言 ⁄ 共 5974字 评论关闭

浅谈强大易用支持URL Rewrite的iOS路由库FFRouter FFRouter 是 iOS 中一个强大且易用的 URL 路由库,支持 URL Rewrite,使 APP 在发布之后也可以动态修改相关路由逻辑.基于匹配查找 URL,效率高.集成和使用都非常简单! Github链接:FFRouter 功能 具备基本的 URL 注册.Route.取消注册.打印 Log 等 支持使用通配符(*)注册 URL 支持 URL Rewrite 支持 Rewrite 时获取原 URL 参数或 URLComponents,并可对其进行URL Encode或 Decode 支

阅读全文
2020年02月18日 编程语言 ⁄ 共 686字 评论关闭

iOS基于 UILabel实现文字添加描边功能 可以达到文字描一圈黑边的效果: 继承UILabel以后重载drawTextInRect: – (void)drawTextInRect:(CGRect)rect { CGSize shadowOffset = self.shadowOffset; UIColor *textColor = self.textColor; CGContextRef c = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(c, 1); CGContextSet

阅读全文
2020年02月18日 编程语言 ⁄ 共 6694字 评论关闭

iOS中创建Model的最佳实践记录 前言 作为一个优秀的程序员,或者想成为优秀的程序员,最基本的你得有MVC编程思想,那么你就要对JSON获取的数据建Model,将service和controller层都分离,从而做到低耦合.现在有很多利用runtime能快速的将json数据转为一个Model.但是我在做项目的时候,发现创建Model(特别是属性特多的)写属性代码很浪费时间,降低了编程效率.后来我自己就写了个好玩的能省去时间创建Model的一个方法,下面话不多说了,来一起看看详细的介绍吧 Immutable Model 我们以Us

阅读全文
2020年02月18日 编程语言 ⁄ 共 4953字 评论关闭

iOS实现步骤进度条功能实例代码 前言 在开发中,我们经常在很多场景下需要用到进度条,比如文件的下载,或者文件的上传等. 本文主要给大家介绍的是一个步骤进度条效果,步骤进度条效果参考 iOS UIKit 框架中并没有提供类似的控件,我们可以使用 UIProgressView.UIView.UILabel 组合实现步骤进度条效果. UIProgressView–实现水平的进度条效果: UIView–把UIView裁剪成圆形,实现索引节点效果: UILabel–每个节点下面的提示文字. 源码 将步骤进度条封装成一个 HQLSt

阅读全文
2020年02月18日 编程语言 ⁄ 共 2679字 评论关闭

iOS中一行代码实现 UIView 镂空效果 这是一种实现 UIView 镂空效果的方案,可以快速实现任意形状的镂空.文字的镂空.带镂空的毛玻璃效果等.本质上是 UIView 的 maskView 效果. 前言 首先来复习一下遮罩效果的实现.如果我们有一张图片,又恰好有一个圆,当我们把圆设置为图片的遮罩时,会得到这样的结果. 代码实现看上去像是这样: view.maskView = maskView; 那么问题来了,如果我们希望得到下面的结果,该怎么做呢?这看起来像是图层的相减,即原来的图层减去遮罩的部分. 可惜苹果爸爸不够贴心,没有提供方

阅读全文
2020年02月18日 编程语言 ⁄ 共 3341字 评论关闭

iOS简单易用的GCD计时器的实现原理 前言 好久没更新文章了,在掘金第一次发文章,还是给自己立一个flag每周至少更新一篇文章,可能文章的质量还不是很如意,希望通过写文章来提高自己文笔,以及记录自己学习中的遇到的问题解决方案. 在学习iOS过程中,想定大家对于定时器都不陌生,在日常开发中总会碰到需要计时器的功能,常见的定时器有NSTimer.GCD.CADisplayLink.网上也有很多的教程介绍三者的区别,今天主要讲的是GCD这种方式使用以及封装. 三者概括区别 优点 缺点 NSTimer 使用简单 受Runloop影响会导致计

阅读全文

iOS之UITableView计时器的实现方式总结(NSTimer、DispatchSource、CADisplayLink) 前言 最近工作比较忙,但是还是出来更新博客了.今天博客中所涉及的内容并不复杂,都是一些平时常见的一些问题,通过这篇博客算是对UITableView中使用定时器的几种方式进行总结.本篇博客会给出在TableView中使用NSTimer或者DispatchSourcer中常见的五种方式.当然下方第一种方式是常规做法,不过也是UITableView中使用NSTimer的一个坑.其他三种方式是为了绕过这个坑的解决方案. 当然,本篇博客共涉及到了UITableView中使用定时器的四种实现方式,当然应该也

阅读全文
2020年02月18日 编程语言 ⁄ 共 1189字 评论关闭

iOS如何优雅地实现序列动画详解 前言 我们的在做动效中经常会有这样的需求,A动画执行完,执行B动画,B动画执行完执行C动画这样的序列,比如如下效果: iOS 10之前,我们可能这样实现这个动画序列,实际上可能你现在的代码就是这样写的: UIView.animate()提供了一个完成block回调,我们可以用它来触发下一个动画.这样做,我们可以实现这个动画.正如你可以看到的,这坨代码的主要缺点是丑陋,几乎没有可读性. UIViewPropertyAnimator iOS10引入了UIViewPropertyAnimator ,基

阅读全文
2020年02月18日 编程语言 ⁄ 共 1338字 评论关闭

iOS11.3以下modal中input光标错位的解决方法 先看一下错位的效果: 这本是iOS系统的一个BUG,不过在iOS11.3以后的系统中修复了: 解决办法: 在body标签中添加样式: body { position: fixed; width: 100%; } 或者 body { overflow: hidden; height: 100%; } ios11,弹出层内的input框光标错位 之前开发了一个微信项目,安全上线,维护期中苹果手机突然出现光标错位现象,经过排查,发现是最新的ios11系统的锅. 具体情况:弹出层使用position:

阅读全文