自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 技术支持网址(url)

If you have any questions, you can either leave a message or send the questions to our email address.We will answer them for you in the first time.Address: [email protected] you

2021-10-13 16:27:20 148

转载 iOS Cocoapods 如何添加更新删除指定的库

一、指定第三方 SDK 的版本Podfiletarget 'Test' do platform:ios,'10.0' pod 'AFNetworking', '~> 2.6.3'end二、更新指定第三方库终端执行:pod install把Podfile内全部的库更新重新安装pod install --verbose --no-repo-update该命令只安装新添加的库,已更新的库忽略pod update 库名 -...

2020-09-27 16:44:46 1057

原创 ios 中webView加载html文本图片显示不全

在iOS开发过程中,用webView显示富文本内容是很常见的需求,加载富文本时通常还要根据webView的高度动态计算cell的高度(例如我们要在tableView或者collectionView的某个cell上)用webView显示一段富文本信息,通常富文本都是由图文混合的。会不多说,直接商代码。以cell为例1.先申明一个webView属性,并设置代理@property (strong...

2019-05-17 17:43:04 2276

转载 tableView 刷新完成后再执行操作

如果在reloadData后需要立即获取tableview的cell、高度,或者需要滚动tableview。如果直接在reloadData后执行代码是有可能出问题的,比如indexPath为nil等等异常情况。  [tableView reloadData]并不会等待tableview更新结束后才执行后续代码,而是立即执行后续代码,然后异步地去计算scrollView的高度,获取c...

2019-02-16 10:17:24 1374

原创 ios定时器使用的几点优化

1. 将定时器添加到runloop中,一般在viewWillAppear方法中添加timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(dealTimer) userInfo:nil repeats:YES];        [[NSRunLoop currentRunLoop] add...

2018-05-18 11:29:43 987

原创 iphoneX,push进入一个webview, 页面底部出现一个黑色区域解决方案

iPhone X出现后,除了对屏幕做各种适配,在跳转到webview的过程中发现底部出现一个黑色区域,其他机型则没有。解决方案也很简单,只要在初始化webView的过程中,添加如下代码:if (IS_IPHONE_X) {        if (@available(iOS11.0, *)) {            self.myWebView.scrollV

2017-12-26 11:28:14 4097

原创 自定义输入输出一个带分隔符,保留两位小数的金额文本

最近要做一个金融类的项目,需要将输出到金额转化为类似100,200.123的形式,于是自己写了一个方法。定义一个NSNumberFormatter属性numberFormatter。关键代码如下,可以将下面方法单独写成一个类,这样在所有需要输出金额的地方都可以使用。方法中isDecimal用来区别是否需要保留两位小数- (NSNumberFormatter *)numberFormat

2017-12-11 16:40:38 407

转载 iOS开发 -- KVO的实现原理与具体应用

[概念部分]一、KVO 是什么?KVO 是 Objective-C 对观察者设计模式的一种实现。【另外一种是:通知机制(notification),详情参考:iOS 趣谈设计模式——通知】;KVO 提供一种机制,指定一个被观察对象(例如 A 类),当对象某个属性(例如 A 中的字符串 name)发生更改时,对象会获得通知,并作出相应处理;【且不需要给被观察的对象添加任何额外代码,就能使用

2017-11-02 11:18:09 215

转载 iOS中的runtime应用

1.什么是runtime?runtime是一套底层的C语言API,包含很多强大实用的C语言数据类型和C语言函数,平时我们编写的OC代码,底层都是基于runtime实现的。2.runtime有什么作用?1.能动态产生一个类,一个成员变量,一个方法2.能动态修改一个类,一个成员变量,一个方法3.能动态删除一个类,一个成员变量,一个方法3.常用的头文件 #import 包含对类、成员变量

2017-10-18 14:12:54 167

转载 contentSize、contentOffset和contentInset的图解辨别

iOS中,UIScrollView是可以滚动的视图,其中最常用的UITableView就是继承了UIScrollView。contentSize、contentInset和contentOffset 是scrollView三个基本的属性。contentSize:即内容,就是scrollview可以滚动的区域,比如frame = (0 ,0 ,100 ,200) contentSiz

2017-10-16 11:00:32 693

转载 iOS库 .a与.framework区别

一、什么是库?库是共享程序代码的方式,一般分为静态库和动态库。二、静态库与动态库的区别?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。三、iOS里静态库形式?.a和.framework四、iOS里动态库形式?

2017-10-13 10:57:33 206

原创 ios键盘弹起tableView的滑动区域问题

在iOS项目开发过程中,经常需要点击textview弹起键盘,但弹起键盘后tableView的可见区域就变小了,如果这时tableView不能在可见区域内滑动,那tableView的内容就不能在键盘弹起的情况下完全显示,这样用户体验就不好了。下面提供一种解决方法。由于大部分控制器类都需要用到tableView,为此可以写一个公共的父类BaseTableViewController继承自UIVi

2017-10-11 10:20:05 1556

原创 iosApp提交到Appstore注意事项

一般在一个多人开发小组,开发一般先在develop分支上,开发结束后合并到主分支master上。合并代码时经常会发生冲突,需要注意:1.head==部分是服务器已有的代码,develop==部分是本地未合并的代码。2.切换到master分枝,在develop分枝上右击选择合并develop到master分枝。注意合并要在本地编译器中操作,操作完将状态转变为以合并,编译通过后将d

2017-09-12 18:06:44 311

原创 根据文本内容自动计算文本高度

在开发过程中,经常需要根据文本内容自适应高度,并设置行间距,这是宽度一般给一个相对固定的宽度,比如屏幕的宽度减去左右两边各15个像素的间距。下面是一个计算自适应高度的标题和内容的代码。sesameRemarkItemModel是一个字典类型,里面包含title和content字符串。#define kCellHeightWithoutText25.0+15.0+12.0

2017-09-08 14:51:14 689

转载 常见HTTP错误代码大全

一些常见的状态码为:200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用详细分解:1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。代码 说明100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认

2017-08-11 14:10:25 254

原创 ios 分类添加属性的问题

首先,创建一个person类,代码如下:XGPerson.h#import @interface XGPerson : NSObject/// 年龄@property (nonatomic, copy) NSString *age;/// 性别@property (nonatomic, copy) NSString *sex;- (void)text1;@endXG

2017-08-01 14:27:59 259

转载 IOS---实例化讲解RunLoop

实例化讲解RunLoop之前看过很多有关RunLoop的文章,其中要么是主要介绍RunLoop的基本概念,要么是主要讲解RunLoop的底层原理,很少用真正的实例来讲解RunLoop的,这其中有大部分原因是由于大家在项目中很少能用到RunLoop吧。基于这种原因,本文中将用很少的篇幅来对基础内容做以介绍,然后主要利用实例来加深大家对RunLoop的理解,本文中的代码已经上传GitHub,大家可

2017-07-28 14:39:25 263

转载 TCP,IP,HTTP,SOCKET区别和联系

网络由下往上分为:        对应          物理层--                      数据链路层--网络层--                       IP协议传输层--                       TCP协议会话层--表示层和应用层--           HTTP协议socket则是对TCP/IP协议的封装和应用(程

2017-07-25 10:15:14 330

原创 iOS block使用

认识block:先从一个简单的需求来说:传入两个数,并且计算这两个数的和,为此创建了这样一个block:int (^sumOfNumbers)(int a, int b) = ^(int a, int b) {    return a + b;};这段代码等号左侧声明一个名为sumOfNumbers的代码块,名称前用^符号表示后面的字符串是block的名称。最左侧的int表示这

2017-07-14 14:03:26 190

原创 ios分类(Categories)和类扩展(Extensions)的区别

最近在写一个项目,需要写一个公共的方法将十六进制的颜色转换为UIColor,但系统的UIKit框架里面没有这种直接转化的方法,我们又无法在系统的UIColor里面添加这个公共的方法,于是想到了category,顺便总结了下extension。1.首先介绍一下分类:新建一个objective-c File@interface UIColor(Hex)+ (UIColo

2017-07-12 14:59:27 280

转载 iOScopy详解

介绍copy和mutableCopy介绍深拷贝与浅拷贝block为什么要用copycopy相对于直接赋值的好处总结预备知识 :内存的栈区 : 由编译器自动分配释放, 存放函数的参数值, 局部变量的值等. 其操作方式类似于数据结构中的栈.内存的堆区 : 一般由程序员分配释放, 若程序员不释放, 程序结束时可能由OS回收. 注意它与数据结构中的堆是两回事, 分配方式倒是类似于链表.

2017-07-11 11:58:08 224

原创 iOS几个小知识点的总结

1.assin与weak的区别:相同点:都是弱引用。区别:assin如果引用的OC对象销毁了, 指针并不会被自动清空, 依然指向销毁的对象(很容易产生野指针错误: EXC_BAD_ACCESS)  weak如果引用的OC对象销毁了, 指针会被自动清空(变为nil), 不再指向销毁的对象(永远不会产生野指针错误)用途:assign一般用在基本数据类型上面, 比如int\double等。w

2017-07-11 10:09:27 242

原创 swift基础之?和!

swift开发中经常会碰到?与!,今天有时间总结一下:?代表定义的变量是个Optional(可选类型),Optional其实是个enum,里面有None和Some两种类型。其实所谓的nil就是Optional.None , 非nil就是Optional.Some, 然后会通过Some(T)包装(wrap)原始值,这也是为什么在使用Optional的时候要拆包(从enum里取出来原始值)的原因。

2017-07-06 14:13:51 202

转载 iOS的三种多线程技术 对比分析

1.iOS的三种多线程技术                    1.NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程)2.以下两点是苹果专门开发的“并发”技术,使得程序员可以不再去关心线程的具体使用问题ØNSOperation/NSOperationQueue 面向对象的线程技术ØGCD —— Grand Central Dispat

2017-06-27 21:47:41 263

转载 设置App icon图标及修改应用程序名

前言这是iOS开发技巧系列博客的第二篇,本篇主要简单介绍一下如何设置应用程序的icon图标以及修改应用程序名。设置 icon首先我们来看看如何设置App icon图标,设置应用程序的icon图标主要有两种方法:第一种:通过项目的Images.xcassets文件实现。第二种:非正式手段,直接将图片的名字改为icon即可。我们先来看看第一种实现方式,首先我们需要切换到项目工程

2017-06-22 15:10:58 581

原创 如何将自己写的项目上传到github上?

首先,你要先确定自己在Github上有自己的账户名,账户邮箱和密码。如果没有可以先去https://github.com注册,如果有了可以点击Sign In登录。之后,我们开始进行命令行操作(当然你也可以下载客户端进行操作)首先:打开终端,输入:       cd 直接将项目文件夹拖进来;然后:第一步:git init第二步:git config --global

2017-06-21 15:57:19 2588

原创 tableView的每个section 的headerView或者footerView随tableView一起滚动

iOS开发过程中,经常会需要在tableview的section头部或尾部添加view,我们希望这些view 能够跟随tableview一起滚动,但常常会出现悬浮情况,类似黏性。下面提供几种解决方法:1.最简单的方法,就是将UIView设置为整个tableView的headerView或者footerView而不是某个section的headerView或footerView。2.将tab

2017-06-01 17:19:28 6963

转载 iOS中打包.a静态库

1.新建.a静态库工程需要选择Static Library静态库工程模板新建工程,如下图:新建静态库工程实现需要打包的类,如下图:实现需要打包的类2.设置需要暴露的头文件添加Headers, 步骤为:TARGET->Build Phases ->点+号->New Headers Phase,如下图:然后找到He

2017-05-24 17:50:48 261

转载 在一个Xcode页面建立多个工程

Xcode里面是可以同时存在多个工程的。可以通过存放在同一个工作空间来实现同一个Xcode页面存在多个工程,也就是有多个xcodeproj。如下图所示。在Xcode页面中管理3个工程这样不仅可以方便管理几个相似功能的工程,更重要的是,可以实现多工程联编。接下来我们会做一个多工程的Demo建立一个工作空间MyWorkspace。使用方法一建立一个普通的Xcode工

2017-05-19 15:35:05 1328

原创 ios CocoaPods的使用

前言:iOS开发者在开发项目的过程中,经常会用到一些第三方库,如果每次手动添加会显得很麻烦,这时使用CocoaPods来管理会显得十分方便,接下来看具体操作。1.Ruby环境的搭建。尽管Mac OS自带Ruby,但我们需要更新一下。a.查看当前Ruby的版本号:打开终端,输入命令ruby -vb.更新ruby,终端输入:gem sources --remove https:...

2017-05-15 09:34:02 211

原创 iostableView cell默认分割线的去除

iOS程序员在写一个tableView的时候,系统会默认每个row有个分割线,但我们需要显示的数据可能只有几条,这就要去掉多余的分割线。只需要给tableview的footerView一个很小的高度就可以搞定了,见代码:- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)sect

2017-04-26 16:26:25 1320

空空如也

空空如也

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

TA关注的人

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