自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

浅浅的博客

温故而知新

原创 iOS 中block的循环引用问题

开发中经常使用weakSelf和strongSelf来解决block的循环引用问题,但是是不是所有的block都会导致循环引用呢?显然不是的,那么怎么判断调用一个带有block方法时是否会造成循环引用呢,我们来分析一下。 首先我们来写一个含有block的类,并调用自己,然后在外部实现这个block...

2018-12-20 15:30:26 261 2

原创 Mac下使用webstorm和Charles搭建本地服务器使手机可访问本地html网页

写了一段时间的h5,页面主要是在手机App中使用,直接用谷歌的模拟器调试是比较方便,但有时候在谷歌浏览器中生效的在手机上不生效,这就比较烦,要想看手机上的效果就得发布到服务器上,还有问题又得重新改,然后重新发布再测试,很麻烦。 之前一直想用XAMPP搭建一个本地服务器,然后让手机访问,找了一堆教程...

2018-12-14 10:39:33 1835 0

原创 iOS中FMDB的使用

在iOS开发中,如果本地需要做大量的缓存,FMDB用的是比较多的,怎么集成到项目中我这里就不说了,主要说一下FMDB使用的一个思路和自己遇到的坑。 在我自己开发聊天系统的时候,我一般是用FMDB用来缓存最近联系人列表和用户的聊天消息列表。因为聊天系统,涉及到的读和写比较频繁,所以我会封装一个单例类...

2018-11-11 19:52:50 1468 2

原创 GCD常用方法及应用场景

开发过程中,出现耗时操作造成界面卡顿是常见的问题之一,问题原因就是因为耗时操作阻塞了主线程,所以要解决这类问题最简单的就是引进子线程,将耗时操作移出主线程,耗时操作完成后回到主线程中更新UI。 之前在做一个通讯录的时候,由于需要自己进行排序,所以第一次时需要将几千条的数据都拉下来然后处理,这是非...

2018-08-30 15:44:42 271 0

原创 iOS中主队列的同/异步执行

主队列是主线中的一个串行队列,通常我们刷新UI都会回到主队列。下面我们来看一下主队列同步执行和异步执行会产生什么样的效果。 主队列,异步执行 //主队列+异步执行 //不会开启新的线程,任务顺序执行 -(void)test5{ NSLog(@"主队列+异步执行"...

2018-08-30 13:26:58 1423 2

原创 多线程中队列和同/异步执行问题

队列分为并行队列和串行队列,执行方式分为同步执行和异步执行,那么组合一下就有四种方式,下面我会用GCD来验证和总结一下各个组合的特性。 并发队列,同步执行 //并发队列+同步执行 //不会开启新线程,任务顺序执行 -(void)test1{ NSLog(@"并发队列+同步...

2018-08-30 11:47:28 1138 0

原创 一种全新的数字货币——GIFT,每天签到领零花钱!

Gift.ONE平台发布的GIFT货币,一个GIFT币价值0.2美元,也就是1.2人民币,注册就送100个GIFT币,每天签到都会有几十个GIFT币。 可以绑定自己的以太坊钱包地址。 近期提币功能已开放。 还在等什么,已经错过了那么多的比特币了,这个再不抓紧机会估计也要高攀不起了...

2018-08-08 10:55:16 1485 0

原创 iOS UI入门——Objective-C和Swift下UITabBarController的使用

很多App启动页过后展示的就是选项卡也就是UITabBarController,这里讲的是最简单的选项卡的实现,直接继承自UITabBarController。 Objective-C代码: #import "MainTabBarViewController.h&...

2018-07-19 11:07:09 298 0

原创 iOS UI入门——Objective-C和Swift下UIPageControl的使用

UIPageControl就是我们常说的小白点,常用于轮播图,与UIScrollView一起使用。效果如图: Objective-C代码: #import "ViewController.h" @interface ViewController ()&lt...

2018-07-12 10:56:43 342 0

原创 iOS使用UIScrollView实现图片循环滑动的思路解析

一组图片循环滑动在开发中经常用到,App的欢迎页、广告banner等等都会用到。成熟的第三方也比较多,个人用的比较多的是JCTopic,这个很轻量级,代码也不多,用起来也是比较方便。 看过源码之后整理了一下实现的思路和原理,我们先来分析一下我们要实现的这个功能——图片循环轮播,看到这个需求我们想...

2018-07-11 16:46:00 1652 0

原创 iOS常用方法——一个好用的获取导航栏高度和Tabbar高度的分类

开发中经常需要知道导航栏(系统)的高度和Tabbar的高度,一般是用来计算在ViewController中的位置和高度,我们可以写一个UIVIewController的分类,这样在调用的时候就很方便。代码如下: #import "UIViewController+MYViewCon...

2018-07-10 10:06:11 10302 0

原创 Swift Mark的使用

在用Objective-C开发iOS的时候,常常用到#pragma mark -,使用Mark可以让代码看上去整洁,提高了代码的可读性。 最近开始写Swift,发现不能再这样写了,这样写直接报错。Swift下的Mark: //MARK:- 阅读代码时,我习惯先看每个类中的方法,只要方法名...

2018-07-09 16:14:59 982 0

原创 iOS UI入门——Swift下WKWebView的使用

之前有写过Objective-C语法下WKWebView的使用,基本包含了界面和与h5的交互,这里主要写Swift语法下WKWebView的使用。直接上代码吧,说明基本都在注释里。 import UIKit import WebKit class ViewController: UIVie...

2018-07-09 15:08:55 6572 0

原创 iOS UI入门——使用Objective-C和Swift实现警告视图和操作列表(UIAlertView,UIActionSheet,UIAlertController)

警告弹框和操作列表在开发中常用到,iOS9之后,UIAlertView和UIActionSheet都会报黄色的警告,但是还是依然可以使用的。在这里主要介绍一在这三个控件在Objective-C和Swift下的使用代码。 Objective-C代码: #import "Vi...

2018-07-09 14:53:33 214 0

原创 iOS常用方法——UIWebView全屏显示的实现

项目中加载webView,导航栏由web端做的话,客户端就需要隐藏掉导航栏。这个时候显示出来的页面,在顶部会出现状态栏为空白的问题。底部也会多出空白,即: - (void)viewDidLoad { [super viewDidLoad]; // Do any additio...

2018-07-05 17:49:43 4357 0

原创 Mac下使用终端查看某个端口号对应的进程和杀死进程

查看端口号对应的进程 打开终端,输入lsof -i tcp:port,port即为端口号,如5037 如果端口号未被占用,回车之后结果如图: 如果端口号被占用,则会出现占用该端口号的进程和进程的id,举个例子: 这样我们就可以根据进程id来杀死进程了。 杀死端口号对应的进程 如...

2018-07-05 15:47:47 18647 0

原创 【Android学习笔记】Android Studio打包生成apk

使用Android Studio生成安卓手机的安装包,步骤如下: 使用Android Studio打开项目,选择Build—>Generate Signed APK 点击后弹出如下的图,选择Module,然后点击next: 重点来了,如果首次进行打包,那么看到的弹框将会是...

2018-07-04 16:42:16 6220 0

原创 iOS开发iPhone竖屏icon尺寸与启动页尺寸汇总

我比较喜欢在TARGETS的General中设置icon和启动页,也就是如下图的地方: 可能很多人喜欢用LaunchScreen.xib来设置启动页,但是只设置一个的话,可能图片的大小很难适配所有的尺寸。我比较喜欢用Assets来设置,每个系统给对应的尺寸。 下面是我汇总的尺寸,按照所给的...

2018-07-03 17:03:57 1173 0

原创 iOS常用方法——WKWebView与h5交互的实现

随着前端开发的强大,原生与h5的交互用的也越来越多。 为什么选用WKWebView,我们可以做一个对比,同一个web页面,用UIWebView加载和用WKWebView来加载,内存占用情况很容易看出来,回到原生页面之后,UIWebView对应的内存也不会降下来。从性能而言,个人觉得能用WKWeb...

2018-07-03 15:44:57 2090 0

原创 iOS常用方法——WKWebView缓存清理的实现

WKWebView是iOS8之后出现的,相较于UIWebView,WKWebView占用的内存更小,还有一些其他的优化。但是如果我们不去主动清理webView产生的缓存,两者都会存在缓存这个问题。比如说一个网页改了一些内容,如果不清理缓存,可能很长一段时间我们都没办法看到新的内容,唯一的办法是卸载...

2018-07-03 14:09:41 6669 0

原创 iOS UI入门——使用Objective-C和Swift实现自定义的UITableViewCell

接着上篇的UITableViewCell的基类,这里自定义的UITableViewCell都继承上篇的BaseTableViewCell。 Objective-C代码: 自定义cell: #import "CustomTableViewCell.h&am...

2018-07-02 13:30:11 430 0

原创 iOS UI入门——使用Objective-C和Swift含tableViewCell的UITableViewCell基类的实现

继承是面向对象语言的一种特性,在开发中经常用到。基类的存在也大大的方便了开发,能减少很多重复的代码。 Objective-C代码: #import "BaseTableViewCell.h" @implementation BaseTableViewCell -(i...

2018-07-02 09:41:10 303 0

原创 iOS UI入门——使用Objective-C和Swift简单实现UITableView

Objective-C代码: #import "ViewController.h" @interface ViewController ()<UITableViewDelegate,UITableViewDataSource> @prope...

2018-06-29 14:27:31 545 0

原创 iOS UI入门——使用Objective-C和Swift简单实现UIScrollView

Objective-C代码: @interface ViewController ()<UIScrollViewDelegate> @end @implementation ViewController - (void)viewDidLoad { [...

2018-06-28 14:46:02 130 0

原创 iOS UI入门——使用Objective-C和Swift简单实现UITextField

Objective-C代码: 设置代理: @interface ViewController ()<UITextFieldDelegate> UITextField相关设置: -(void)setupTextField{ //...

2018-06-27 14:55:32 144 0

原创 iOS UI入门——使用Objective-C和Swift实现UIButton的显示和点击事件

Objective-C实现UIButton的显示和点击事件 -(void)setupButton{ //初始化button UIButton * testButton = [UIButton buttonWithType:UIButtonTypeCustom]; ...

2018-06-26 15:36:00 1202 0

原创 iOS UI入门——使用Objective-C和Swift实现UIImageView显示图片

1.单张图片的显示 Objective-C代码: -(void)setupImageView{ //初始化一个imageView UIImageView * testImageView = [[UIImageView alloc] initWithFrame:self....

2018-06-26 14:43:50 1291 0

原创 iOS UI入门——使用Objective-C和Swift实现UILabel显示文本

UILabel是很常见的UI控件,用到的地方很多。 Objective-C实现UILabel显示静态文本: -(void)setupLabel{ //初始化一个UILabel并确定它的坐标 UILabel * testLabel = [[UILabel alloc] ini...

2018-06-26 11:29:55 401 0

原创 iOS UI入门——使用Objective-C和Swift简单实现UIView的显示

刚开始写Swift,还是有很多不习惯,客户端毕竟是显示为主,所以UI部分很是重要,网上讲Swift语法的有很多,但是系统的讲UI的不是很多(也可能是我自己没找到)。所以我就自己写一个iOS的UI系列,对比着Objective-C写Swift,希望对像我一样刚入门Swift的小伙伴有所帮助~ Ob...

2018-06-26 10:59:12 619 0

原创 iOS常用方法——获取沙盒中的几个目录路径

开发中常遇到需要缓存的需求,缓存的时候我们就需要有一个路径,下面的代码是获取沙盒中的路径的方法: //获取沙盒主目录路径 NSString * homeDirectory = NSHomeDirectory(); NSLog(@"home === %@&qu...

2018-06-25 14:40:27 1644 0

原创 iOS常用方法——动画点击事件的实现

动画的实现我们一般都用UIImageView,比如之前博客中的直线等动画,现在想要给在动的的图片添加一个点击事件。 当时做这个功能的时候试过很多方法,但是有些确实不行,有些时候我不知道别人在写博客的时候是怎么想的,或者真的没有亲自试过,或者是代码太老了无效?有些文章中给出的代码确实跟文章介绍的功...

2018-06-25 14:15:00 1166 0

原创 iOS常用方法——基于AFNetworking的post、get方法的封装及获取当前网络状态的实现

AFNetworking是一个常用的网络请求库,每个项目的网络请求和返回格式不同,AFNetworking返回的通用型的,我们可以封装一层,让其更适合我们自己的项目。 实现代码: #import <Foundation/Foundation.h>...

2018-06-22 05:38:52 575 0

原创 iOS常用方法——一个好用的获取View的位置和大小的类

在写代码的时候我们如果用frame进行布局的话,经常会用到像self.view.frame.size.width这样的语句来获取我们想要的位置或者大小的值,这个语句调用的时候很繁杂,下面是我封装的一个类,很简洁的代码就可拿到自己想要的值。 给UIVIew添加一个分类,因为UI基本都继承自UIVi...

2018-06-21 17:20:56 3010 0

原创 iOS常用方法——十六进制颜色值转换为UIColor

字符串十六进制颜色值转换为UIColor: /** 16进制颜色转换为UIColor @param hexColor 16进制字符串(可以以0x开头,可以以#开头,也可以就是6位的16进制) @param opacity 透明度 @return 16进制字符串对应的颜色 */...

2018-06-21 17:07:59 3222 0

原创 iOS常用方法——字符串中含某个子字符串高亮效果的实现

我们在使用Google进行搜索时会看到搜索的关键字高亮的效果: iOS客户端字符串中子字符串实现的代码: +(NSMutableAttributedString *)stringWithHighLightSubstring:(NSString *)totalString substri...

2018-06-21 16:56:07 1327 0

原创 iOS常用方法——计算字符串显示的大小

UILabel固定宽来获取高度或者固定高来获取宽度: -(CGSize)sizeWithStringShowSize:(CGSize)size showFont:(CGFloat)font{ //固定宽获取高度size:CGSizeMake(100, MAXFLOAT) ...

2018-06-21 16:29:32 746 0

原创 iOS常用方法——NSDate常见处理的方法封装

NSDate转换为时间戳 +(NSString *)dateChangeToTimestamp:(NSDate *)date{ NSString *timeSp = [NSString stringWithFormat:@"%ld", (long)[date tim...

2018-06-21 16:13:48 356 0

原创 iOS常用方法——判断图片类型

直接用图片的后缀来判断图片的类型不一定准确,用下面的方法可以准确的判断出图片的类型。 +(NSString *)contentTypeForImageData:(NSData *)data{ uint8_t c; [data getBytes:&c lengt...

2018-06-21 15:57:27 1045 0

原创 iOS常用方法——sha1编码和MD5编码

对string进行sha1编码: -(NSString *)stringWithSha1Encode{ const char *cstr = [self cStringUsingEncoding:NSUTF8StringEncoding]; NSData *data =...

2018-06-21 15:43:35 421 0

原创 iOS常用方法——URL编码和URL解码

URL编码是一种常见的编码方式,作用不多说,直接上代码。 URL编码: - (NSString *)URLEncodedString { // CharactersToBeEscaped = @":/?&=;+!@#$()~',*"...

2018-06-21 15:25:04 7503 0

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