自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(64)
  • 资源 (6)
  • 收藏
  • 关注

原创 【算法】归并排序及其应用

#一、归并排序##归并排序的思路归并排序是典型的分治算法,把一个数组的排序,分为两个子序列的排序,然后将两个有序序列合并。以上就是整个算法的核心。整个过程如下图所示(图侵删):![归并排序图解](https://upload-images.jianshu.io/upload_images/7789910-7644baaa23733f15.png?imageMogr2/auto-orient/str...

2018-06-12 16:43:02 342

原创 【iOS】神坑!iOS8在xcode9.2图片显示异常

问题如上如所示,项目中的tabbar的图片显示成这样了。搜了一下,发现是xcode9.2的bug,详情可看https://juejin.im/post/5a30f9e2f265da430f3217d0。解决xcode降级Or等苹果大佬更新

2017-12-15 17:33:34 1518

原创 【iOS】XML解析导致的卡顿问题

问题描述笔者在公司项目中,需要解析一个200K左右的XML文件(有3000个XML结点),发现解析会导致整个App卡顿。于是猜想是不是在主线程中进行了解析,导致卡顿。因此,xml的代理方法didStartElement,即以下方法,打印了当前线程,发现代理是异步执行的,就以为不是这个问题了。func parser(_ parser: XMLParser, didStartElement elemen

2017-12-14 19:19:15 553

原创 【二分法】LeetCode-Search Insert Position

前言今天在LeetCode遇到一个这样的题目.题目意思就是给一个排好序的数组和要寻找的数,若数组存在,返回它的index,否则返回它该插入的位置。思考拿到这个问题,哇,这不就是普通的二分法吗?那就刷刷的写下了二分法的代码:func searchInsert(_ nums: [Int], _ target: Int) -> Int { var low = 0 var high = nu

2017-10-27 10:34:08 372

原创 【iOS】仿知乎日报,RxSwift-Part2-详情页的搭建

前言在上一篇,我们搭建了首页。而这篇,我们将开始搭建话题详情页。分析还是先来看下演示gif再结合话题详情的接口分析 http://news-at.zhihu.com/api/4/news/9649565。具体的json格式如下:{ "body": "<div class=\"main-wrap content-wrap\">\n<div class=\"headline\">\n\n<div c

2017-10-21 09:44:11 1172

原创 【iOS】仿知乎日报,RxSwift-Part1-首页搭建

前言之前的几篇博客算是入门篇,那么这篇就是RxSwift的实战篇。由于对RxSwift的认识还不够深刻,所以项目中没有使用MVVM模型,以及编程思想也还没转变过来。该项目是参考https://github.com/kLike/ZhiHu-RxSwift实现的,最大的实现区别就是,我用的是纯代码实现,还有对网络请求的封装。此外,原项目中存在大量强解包,很容易crash。因此,我是在原来基础上,做了一些

2017-10-21 09:42:42 1220

转载 【iOS】RxSwift官方Example5--计算器

原文地址https://beeth0ven.github.io/RxSwift-Chinese-Documentation/content/more_demo/calculator.html前言本来这一篇是想自己写的,但是看完这个例子后,一脸懵逼,只好去搜搜有没有人分析这篇例子。结果还真给我搜索到了,看完后,发现这篇播客写的非常详细,推荐学Rxswift的都去看看。简介还是先来直接看演示的例子吧。

2017-09-09 14:58:11 507

原创 【iOS】RxSwift官方Example4--Github注册(MVVM)

前言这一篇,是一个仿Github注册的表单页面。官方针对这个例子,介绍了用RxSwift实现MVVM,一个是使用Driver 序列(针对UI界面的),另一个是Observable 序列。所以可以总结的知识点如下:MVVM的实现Observable序列和Driver序列的区别功能说明还是老样子,先说明这个例子做了什么。其实就是一个很经典的注册表单界面:输入用户名,检验用户名是否存在输入密码,

2017-09-06 14:51:02 954

原创 【iOS】RxSwift官方Example3--地理位置监听

前言其实,这一篇的题目,我觉得应该是RxSwift对代理的封装,最后还是沿用官方Example的命名吧。效果说明图一 图二 图一是当App可以使用定位信息时,显示当前的经纬度。图二是当App被禁止使用定位信息时,显示的提示信息代码解释比起上两个Example,这个Example复杂的多了。主要复杂在对Delegate的封装。如何使用RxSwift对Delegate的封装稍后再说,先看看封装后

2017-09-01 22:19:54 772

原创 【iOS】RxSwift官方Example1,2--加法,检验篇

前言从今天起,我把自己学习RxSwift的官方Example时的感想写下来,或许对有疑惑的人有帮助吧。传送门加法篇功能说明在这三个文本框任意输入数字后,将计算累加后的结果代码解释可以说,这个Demo是整个官方Example中最简单的。只需要对三个TextField的rx.text进行监听即可。源码如下:@IBOutlet weak var resultLabel: UILabel! @IBO

2017-08-31 09:39:26 950

原创 【iOS】RxSwift入坑感想及建议

1、RxSwift简介相信大家早已听说过函数式响应编程这个概念吧?其中不得不说的就是RxSwift了。RxSwift的目的是让让数据,事件流和异步任务,能够更方便的序列化处理。所以说,在RxSwift中,一切数据,事件切序列,我们要做的只要对序列做操作即可。2、学习建议2.1、官网首推RxSwift官网上的Demo,虽说都是英语写的,但还是很容易看的懂的。推荐边看边敲,该教程是由playground

2017-08-29 23:15:20 3648

原创 【Bug】Swift3,iOS8下创建控制器的坑

问题描述最近上线Swift3.1项目时,发现iOS8的用户进入某个界面都会闪退,而iOS8以上的用户都没有问题。问题所在发现崩溃的控制器,UITableViewController的init(style: UITableViewStyle)方法override init(style: UITableViewStyle) { super.init(style: style) }

2017-08-25 10:43:43 381

原创 【iOS控件】拖动的时间轴

效果图下载地址https://github.com/maple1994/MPTimeZhou

2017-08-07 16:24:45 928

原创 【iOS】视频全屏退出后,导航栏向上偏移20

问题描述当网页的视频全屏播放时(调用了原生的播放器播放),然后点击左上角的完成退出时,导航栏向上偏移20。如下图所示: 解决方案查了许多资料,一般提供一下两种方案:// 第一种self.automaticallyAdjustsScrollViewInsets = false// 第二种self.navigationController?.edgesForExtendedLayout = UI

2017-08-02 10:41:02 5335

原创 【iOS】基于Realm数据库的记账软件--钱包/记账模块(四)终

1、前言接下来,我们将开始钱包模块和记账模块。其实钱包模块是整个项目中最简单的一部分了,所以我将挑几个点说一说~还是老规矩,先看看界面效果: 图一: 图二: 2、钱包详情界面的搭建钱包界面主要是由图一,图二组成的。图一的搭建比较简单,就不说明了。接下来看看图二的搭建吧。2.1、导航栏的设置从图二可以看到,我们的导航栏“不见了“。这里的实现方式其实是隐藏了导航栏的背景,并且添加了一块高为64

2017-07-21 21:17:48 663

原创 【iOS】基于Realm数据库的记账软件--时间线模块(三)

1、前言接下来,我们将开始搭建时间线界面。该模块是界面展示中最大的难点–时间线布局。那么,我们先来看看效果图,因为gif上传后,动不了。所以在这里用几张截图和文字简单的描述一下,具体效果大家可下载项目自行查看~ 从图一滚动到图二时,头部从7月的数据变成6月的账单数据。2、时间线搭建2.1、前言这个时间线界面是仿照口袋记账的,一开始没有头绪的时候,就把自己的手机越狱了,然后通过Reveal进行查看其

2017-07-20 19:10:48 757

原创 【iOS】基于Realm数据库的记账软件--记账模块(二)

1、记账界面搭建从记账的需求出发,该界面需要用户输入以下账单信息: (1)账单金额 (2)账单类型 (3)相关账户 (4)账单产生的日期 (5)备注 那么,结合一下需求,开始构思一下界面如何搭建吧。 其实这个界面不难搭建,一个控制器的scrollView添加包含两个控制器的视图(一个是收入,一个是支出)。子控制器分别用CollectView布局即可。这里就不详细说明了2、数据准备首先,

2017-07-16 16:07:19 927

原创 【iOS】基于Realm数据库的记账软件--Realm数据库(一)

1、数据库表设计账单表:Bill 字段 类型 说明 billID NSString 账单ID,主键 date NSString 账单产生日期 money Double 账单金额 isIncome Bool true代表收入,false代表支出 remark NSString 备注 accountID NSString

2017-07-11 22:11:14 766

原创 【iOS】基于Realm数据库的记账软件--前言

前言笔者在今年毕业的时候,为了应付学校的毕业设计,因此做了一款基于Realm数据库的记账软件。现在毕业后,稍微闲下来了,所以打算将整个项目的核心实现步骤记录下来,供大家学习学习。当然,项目中肯定还存在着大大小小的bug,例如数据的溢出等细节处理。那么先让大家看看项目的效果图吧~效果图时间线布局 记录界面 钱包界面 报表一 报表二 项目结构项目大体分为四大模块,分别是记录 是整个项目的核

2017-07-09 10:19:22 808

原创 【iOS】Quart2D绘图消除线条“锯齿”

前言最近笔者在绘制股票折线图时,发现绘图时,线条的转折处有很明显的的锯齿!于是笔者开启了消除“锯齿”之路。。。锯齿感示例图解决方法在网上尝试了许多方法,例如开启消除锯齿等方法都没有,最后发现因为path的stroke时机调用错了,因此导致绘图产生了锯齿感。接下来看代码:class LineView: UIView { override func draw(_ rect: CGRect) {

2017-07-09 09:30:37 2133

原创 【iOS】自定义控件之长按按钮

需求最近接了一个需求,长按一个按钮,需要持续的触发,手指抬起时或者离开按钮触摸区域,就结束响应。思路思路1:在button上添加一个长按手势。 思路2:给button添加一个定时器实现最后笔者使用了思路2的方法,采用了定时器。采用定时器最需要解决的一个问题是,定时器的关闭,于是笔者把所有能想到可以停止定时器的情况都会调用一次~代码如下:/// 只要手放在button上就会触发class Touc

2017-07-06 08:22:16 808 1

原创 【iOS】scrollRectToVisible失效解决

scrollRectToVisible作用将scrollView坐标系内的一块指定区域移到scrollView的窗口中,如果这部分已经存在于窗口中,则什么也不做。失效解决方法设置contentSize时,width和height必须都不能为0参考链接https://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0ahUK

2017-05-22 11:31:37 2369

转载 【iOS】首行缩进两个字符

NSString *_test = @"首行缩进根据字体大小自动调整 间隔可自定根据需求随意改变。。。。。。。" ; NSMutableParagraphStyle *paraStyle01 = [[NSMutableParagraphStyle alloc] init]; paraStyle01.alignment = NSTextAlignmentLeft; //对

2017-04-02 13:31:32 3126

转载 堆和栈的区别

一、预备知识–程序的内存分配一个由C/C++编译的程序占用的内存可以分为以下几个部分栈区(stack) 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈堆区(heap) 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块

2017-03-17 14:37:50 344

转载 Reveal2调试别人App的界面

准备工作越狱手机一部通过Cydia安装Reveal Loader电脑与手机处于同一wifi下测试环境xcode8Reveal2越狱手机步骤一、检查RHRevealLoader是否存在终端操作:1、通过SSH连接手机ssh [email protected] // 你的ip地址,默认密码alpine2、查看RHRevealLoader是否存在ls -ls /Library3、存在则不

2017-03-10 11:56:10 3677

转载 Reveal2通过lldb调试的方法

一、添加lldbinit文件打开终端,输入如下指令:vim ~/.lldbinit然后将以下内容复制进入command alias reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework/RevealServer",

2017-03-10 10:07:48 437

原创 【算法】递归求数组指定范围内最大和次大的数值

问题描述从数组区间A[low, high]中找出最大的两个整数A[x1]和A[x2]算法思路这里我们使用递归分治的策略,把问题划分为求A[low, middle],B[middle + 1, high]的子问题。递归基为if(low == high){ x1 = low; x2 = -9999; // 这里表示一个极小的数}具体代码#include <stdio.h>#incl

2017-02-12 23:23:43 1590

原创 【iOS】检测textView输入时,中文输入法的产生的问题

问题描述有时,我们想对textView的输入进行实时检测,但是当切换到中文输入法时(系统自带的输入法),会出现还没确定输入中文,它的字母已经插入到textView中了,所以我们要区别对待这种情况。见下图 解决方案经查资料,通过TextView的UITextPosition是否有值,判断是否结束中文输入。代码如下- (void)textViewDidChange:(UITextView *)text

2017-02-10 23:33:04 5140

转载 【iOS】自定义textField的clearButton

方法一,rightViewtextField有一个属性叫做rightView,只要给rightView添加一个自定义的Button,监听点击事件即可方法二,KVC UIButton *button = [textField valueForKey:@"_clearButton"]; [button setImage:[UIImage imageNamed:@"icon_blueclear"]

2017-01-23 11:21:34 2236

转载 【解决Xcode】IB Designables: Failed to update auto layout status

问题描述今天xcode8进行编译的时候,发现有一个xib加载失败,于是找了下解决方法删除driverData文件夹(偏好设置 –> location进入)重启xcodeclean project来源网站http://stackoverflow.com/questions/28204108/ib-designables-failed-to-update-auto-layout-status-f

2017-01-18 15:14:57 9133

原创 SDAutoLayout设置富文本时,label算高的问题

问题描述笔者项目使用了SDAutoLayout进行了布局,某些场景需要设置富文本,发现设置富文本后,label算高出现问题,label仍然保持普通文本时的高度。找了一下,记录一下解决方法#pragma mark - UILabel 开启富文本布局、设置单行文本label宽度自适应、 设置label最多可以显示的行数@interface UILabel (SDLabelAutoResize)/** 是

2017-01-10 10:46:06 2529

原创 iOS--手动计算frame的精度丢失问题

问题有个页面,在我来回切换的时候,每次切换都会有一点偏移。但是如果是写成固定的整数常量,却不会出现这个问题。解决方法其实是手动计算frame的时候,没有进行取整,导致精度丢失。所以在计算完frame的高度时候,进行取整,例如用ceilf()等宏函数进行取整即可

2016-12-28 16:02:04 946

原创 iOS对第三方框架的国际化改为跟随系统改变

前言当一个项目要求在应用内切换应用语言,对于我们自己编写的代码,当然可以统一处理。比较麻烦的是,要求第三方框架的语言也随之变化。应用内切换语言的实现方法,可以参考上篇文章。分析为了实现需求,我们有以下两种做法直接修改源码运行时机制之交换方法 若采取第一种方法,将不利于我们使用pod来管理第三方框架。所以在这里我们使用运行时,交换方法(这里也可以参考我的另一篇文章,交换方法)。例子一、分析这里

2016-12-28 13:00:40 3246 1

原创 iOS--在应用内切换语言

前言在一次项目中,要求在应用内切换语言的需求。如需跟随系统改变语言的,可以参考其他的博客,这里就不多说了思路创建一个国际化管理者,通过传递一个key,再根据当前的语言环境,获取对应的value。实现步骤1、选择要国际化的语言进入如下界面后,找到最下面的“+”号,选择要进行国际化的语言 2、创建strings文件点击strings文件,在右侧工具栏找到Localization,选择要国际化的语种

2016-12-24 15:22:21 2784 1

转载 iOS中用预编译命令判断是否真机

原文地址http://www.jianshu.com/p/034fd7ebead1判断方法#if TARGET_IPHONE_SIMULATOR NSLog(@"run on simulator"); #else NSLog(@"run on device"); #endif预处理命令简介http://www.uml.org.cn/c++/200902104.asp

2016-11-28 17:27:49 650

转载 CocoaPods解决Unable to add a source with url

问题装了xcode8后,第一次进行pod,发现出现以下问题[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master-1`.You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.

2016-11-25 09:24:06 887

转载 解决xcode8的快速注释失效

解决方法命令行执行以下命令sudo /usr/libexec/xpccachectl然后必须重启电脑后生效原文地址http://www.jianshu.com/p/948153008973

2016-11-24 17:44:25 803

原创 iOS中textField光标下移的解决方案

问题描述当textField进行输入时,出现输入位置的现象,如图解决方案笔者一开始是将textField成为第一响应者的方法写在了ViewWillAppear方法中,之后将其挪到ViewDidAppear方法中,问题即解决了- (void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; [self.sear

2016-11-24 09:14:04 2573

原创 iOS之序列化PHAsset

场景分析情景:草稿箱 描述:从草稿箱再次进入编辑界面,继续选择图片时,保持上次图片的选择状态 问题提出:笔者的图片选择器是使用TZImagePickerController,如果弹出选择器时,要保持图片的选中状态,必须在弹出前传递上次已选中的Asset数组。那么如何保存Asset数组呢?序列化PHAsset通过序列化PHAsset的localIdentifier,最后通过PHAsset的类方法,

2016-11-22 09:18:14 1518

原创 iOS之Quartz2D解析

Quartz2D一、简介概述Quartz 2D是一个二维绘图引擎,同事支持iOS和Mac系统Quartz 2D能完成的工作绘制图形:线条/三角形/矩形/圆形/弧等绘制文字绘制\生成图片(图像)读取\生成PDF截图\裁剪图片自定义UI控件Quartz2D须知Quartz2D的API是纯C语言的Quartz2D的API来自于Core Graphics框架数据类型和函数基本都以CG作为

2016-11-18 23:10:46 340

iOS应用内切换语言

支持iOS国际化,可以在应用内部进行切换,也可以跟随系统切换语言

2016-12-24

ios自定义下拉刷新控件

iOS自定义下拉刷新控件

2016-10-17

头像上传的一个demo,可以从相册选择图片并裁剪

头像上传的一个demo,可以从相册选择图片并裁剪。上传的做法就没有写进去了,上传自行实现,这里只获得了裁剪后的图片。详情可查看我的博客

2016-09-07

相册中选择图片裁剪,适用于头像上传

适用于iOS8,从手机相册中获取图片,并裁剪,适用于头像上传

2016-09-03

相册获取图片并裁剪

从相册中选择图片裁剪,最后返回裁剪后的图片。

2016-09-03

SSH框架网上书店含(数据库件面)

简单的SSH框架的网上书店,使用mysql数据库

2015-12-11

空空如也

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

TA关注的人

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