自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Japho

世间万物皆对象,属性方法和变量。个人博客:https://japho.top

  • 博客(21)
  • 收藏
  • 关注

原创 iOS PDFKit 开发指北

前言2017年夏天,在苹果全球开发者大会(WWDC)上,苹果公司终于推出了针对于 iOS 的 PDFKit 支持。PDFKit 自从 MacOS 10.4 以来一直在 AppKit for MacOS 中。但 UIKit 却迟迟得不到支持,尽管苹果公司之前在 iBooks 和 Mail 中使用过 PDFKit , 但是该框架并未向开发人员开房。PDFKit 包含了大量关于 PDF 相关的功能,...

2018-11-22 11:54:19 3169

原创 优雅的动画实现方案SVGA、Lottie

前言在开发APP的过程中,需要在APP中实现设计同学的UE效果动画,一般都是通过代码实现的,当对于较复杂的动画时,例如直播中刷礼物时的动画,这时利用代码实现会比较复杂。而且Android和iOS两端不好统一效果,如果用gif图片来实现的话,在图片大小和动画帧数之间很难权衡。而且会导致内存吃紧。为了解决这样的问题,今天来介绍两款实现复杂动画的开源库:Lottie和SVGA。LottieLot...

2018-11-06 17:57:43 5541 1

原创 iOS Widget的简单实现

自iOS8之后,苹果支持了扩展(Extension)的开发,开发者可以通过系统提供给我们的扩展接入点 (Extension point) 来为系统特定的服务提供某些附加的功能。今年iOS10的推出,让Widget扩展应用渐渐的火了起来,地位得到重大的提升,从这也可以看出苹果对他的重视,今天我们就来一起学习下Widget,来实现一个简单的扩展程序。程序效果创建Widg...

2018-03-13 22:15:22 1483

原创 iOS枚举(位移枚举)

什么是枚举在程序设计语言中,一般用一个数值来代表某一状态,这种处理方法不直观,易读性差。如果能在程序中用自然语言中有相应含义的单词来代表某一状态,则程序就很容易阅读和理解。也就是说,事先考虑到某一变量可能取的值,尽量用自然语言中含义清楚的单词来表示它的每一个值,这种方法称为枚举方法,用这种方法定义的类型称枚举类型。枚举的命名定义的枚举类型名称通常与项目的类文件前缀相同,或者是类库框架缩写,或者跟随具

2016-10-21 11:53:05 799

原创 iOS设计模式——单例模式(Singleton)

一、何为单例模式单例模式:保证一个类只有一个实例,并提供一个访问它的全局访问点。单例模式几乎是设计模式的最简单形式了。这一模式的意图是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。我们可以用工厂方法来限制实例化过程。这个方法应该是个静态方法(类方法),因为让类的实例

2016-08-02 15:29:11 422

原创 UIButton中imageView和titleLabel的位置调整

在使用UIButton时,有时候需要调整按钮内部的imageView和titleLabel的位置和尺寸。在默认情况下,按钮内部的imageView和titleLabel的显示效果是图片在左文字在右,然后两者紧挨在一起构成组合居中显示。如下图:我们可以使用setImageEdgeInsets:和setTitleEdgeInsets:方法来调整两者的位置。在使用这两个方法之前,我们首先要将im

2016-07-29 14:44:49 736

原创 Xcode去除版本控制

点击左上角工具栏 Xcode -> preference 选择 sorce control 一栏,去掉Enable source control 的勾勾

2016-07-06 11:44:17 1084

原创 iOS 自定义常见第三方分享

d平时经常会遇到做第三分享的需求,相信大家好多都使用的集成的分享平台shareSDK、友盟分享等。他们其实是对各种第三方平台进行了二次封装,有时需求只要求做其中一种平台的分享的时候其实像shareSDK这种集成环境就有些显得比较冗余了,因为他集成了很多的平台,用户可自定义程度不高,使得自己的程序会变得很臃肿,今天就把自己的干货拿出来,来讲一讲自定义的第三方分享。下面主要讲一下目前应用比较广

2016-04-22 15:16:29 1878

原创 iOS 开源项目及第三方库汇总

UI下拉刷新EGOTableViewPullRefresh – 最早的下拉刷新控件。SVPullToRefresh – 下拉刷新控件。MJRefresh – 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写)XHRefreshControl – XHRefres

2016-04-21 09:47:15 1800

原创 iOS UILabel垂直居中

平时开发的时候可能会遇到这种问题:当一个UILabel的frame的高度设置的过大时,发现UILabel是垂直居中的,有的需求是需要将这个Label垂直向上显示,之前的办法是计算出label.text的字体所占用的frame大小,根据这个大小再重新设置label的frame值,未免有些麻烦,前阵子封装了个自定义label实现的垂直居中的设置。废话不多说,上代码。//// JFLabel.h

2016-04-20 18:24:07 9818

原创 runtime OC类执行顺序

一、runtime如何实现?OC这个语言尽可能的将一些决定从编译器推迟到运行时,他会尽可能的动态处理事情,这意味着这个语言不仅需要一个编译器,还需要一个运行时系统,使得这个语言得以运行。RunTime简称运行时。就是系统在运行的时候的一些机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数( C语言的函数调用请看这里 )。编译完成之后直接顺序执行,无任

2016-04-20 16:26:45 1289

原创 使用Block需注意的问题

1、block中引用外部变量block中引用外部变量时,通常会把对象当做常量变量编码到block中,并且在block中尝试改变外部变量的值会报错,解决办法是引入__block标识符,需要在block内部修改的变量标识为__block scope2、block自身的内存管理block本身是像对象一样可以retain,和release。但是,block在创建的时候,它的内存是分配在

2016-04-20 16:23:21 794

原创 iOS UIButton传递多个参数的方法——使用关联函数

在平时开发时经常会要遇到通过button的绑定值来做逻辑处理以区分不同的button,通常使用tag来区分,但是当需要传多个值的时候这就比较麻烦了,通常考虑用全局变量来传值,今天来介绍另一种给UIButton传值的方法——关联函数。下面来简单介绍下关联。关联关联是指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分。关联特性只有在Mac OS X V10.6

2016-04-20 15:25:31 4854

原创 iOS delegate、notification、KVO如何选择

在开发ios应用的时候,我们会经常遇到一个常见的问题:在不过分耦合的前提下,controllers间怎么进行通信。在IOS应用不断的出现三种模式来实现这种通信:1.委托delegation;2.通知中心Notification Center;3.键值观察key value observing,KVO因此,那为什么我们需要这些模式以及什么时候用它以及什么时候不用它。下面来讨论这三

2016-04-20 14:58:44 820

原创 iOS开发调整UILabel的行间距

最近再做一个项目时,发现UILabel中text的系统默认行间距不能满足要求,于是在网上找到了调整行间距的代码。跟大家分享一下,希望能对你有所帮助。CGFloat heih = 20;NSString * cLabelString = @"这是测试UILabel行间距的text。这是测试UILabel行间距的text。n 这是测试UILabel行间距的text。n 这是测试UILa

2016-04-20 11:40:37 1123

原创 如何查找当前的第一响应者

有时候总是有需求来获取当前的第一响应者,例如让TextField收键盘,隐藏视图等等操作都需要获取当前的第一响应者,那么该如何获取呢?UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];UIView *firstResponder = [keyWindow performSelector:@selec

2016-04-20 11:25:59 3390

原创 Mac OS X 如何查看隐藏文件

在 Mac 文件的文件名前添加 . 即可使文件隐藏也可以在终端里面能用命令来控制显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles YES隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles NO命令运行后需要按 Command Op

2016-04-20 11:19:55 599

原创 iOS 微博第三方登录的简单实现

一、下载微博SDK微博SDK的官方github : https://github.com/sinaweibosdk/weibo_ios_sdk下载所需要的SDK二、集成SDK下载后的SDK文件结构如下:              将这个文件夹拖拽到你所要添加的工程中。三、引入依赖库及相关设置如图点击添加依赖库所需依赖库:QuartzCor

2016-04-20 10:21:35 7187 2

原创 iOS 判断当前viewcontroller是push还是present的方式显示

通过presentviewcontroller的方式显示的viewcontroller不会存入self.navigationController.viewControllers数组中。而通过push方式显示的viewcontroller会存在该数组的最后。代码如下: NSArray *viewcontrollers = self.navigationController.viewCo

2016-04-19 15:23:47 2297

原创 iOS 微信第三方登录的简单实现

一、下载微信SDK微信开放平台 https://open.weixin.qq.com二、导入SDK导入SDK,并添加依赖库               三、配置URL scheme在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程

2016-04-15 15:19:22 9710

原创 iOS QQ第三方登录的简单实现

平时我们经常会在一些app的登录界面中见到第三方登录,一些应用中一般会使用一些类似shareSDK的集成平台,他们是将QQ、微信、微博等第三方进行了二次封装,灵活性不太高,其实直接集成也是比较容易的。今天就来简单的说一下QQ的第三方登录的集成。

2016-04-14 16:54:03 2282

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除