- 博客(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: 18662187219@163.comthank you
2021-10-13 16:27:20 168
转载 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 1092
原创 ios 中webView加载html文本图片显示不全
在iOS开发过程中,用webView显示富文本内容是很常见的需求,加载富文本时通常还要根据webView的高度动态计算cell的高度(例如我们要在tableView或者collectionView的某个cell上)用webView显示一段富文本信息,通常富文本都是由图文混合的。会不多说,直接商代码。以cell为例1.先申明一个webView属性,并设置代理@property (strong...
2019-05-17 17:43:04 2330
转载 tableView 刷新完成后再执行操作
如果在reloadData后需要立即获取tableview的cell、高度,或者需要滚动tableview。如果直接在reloadData后执行代码是有可能出问题的,比如indexPath为nil等等异常情况。 [tableView reloadData]并不会等待tableview更新结束后才执行后续代码,而是立即执行后续代码,然后异步地去计算scrollView的高度,获取c...
2019-02-16 10:17:24 1437
原创 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 1001
原创 iphoneX,push进入一个webview, 页面底部出现一个黑色区域解决方案
iPhone X出现后,除了对屏幕做各种适配,在跳转到webview的过程中发现底部出现一个黑色区域,其他机型则没有。解决方案也很简单,只要在初始化webView的过程中,添加如下代码:if (IS_IPHONE_X) { if (@available(iOS11.0, *)) { self.myWebView.scrollV
2017-12-26 11:28:14 4112
原创 自定义输入输出一个带分隔符,保留两位小数的金额文本
最近要做一个金融类的项目,需要将输出到金额转化为类似100,200.123的形式,于是自己写了一个方法。定义一个NSNumberFormatter属性numberFormatter。关键代码如下,可以将下面方法单独写成一个类,这样在所有需要输出金额的地方都可以使用。方法中isDecimal用来区别是否需要保留两位小数- (NSNumberFormatter *)numberFormat
2017-12-11 16:40:38 422
转载 iOS开发 -- KVO的实现原理与具体应用
[概念部分]一、KVO 是什么?KVO 是 Objective-C 对观察者设计模式的一种实现。【另外一种是:通知机制(notification),详情参考:iOS 趣谈设计模式——通知】;KVO 提供一种机制,指定一个被观察对象(例如 A 类),当对象某个属性(例如 A 中的字符串 name)发生更改时,对象会获得通知,并作出相应处理;【且不需要给被观察的对象添加任何额外代码,就能使用
2017-11-02 11:18:09 226
转载 iOS中的runtime应用
1.什么是runtime?runtime是一套底层的C语言API,包含很多强大实用的C语言数据类型和C语言函数,平时我们编写的OC代码,底层都是基于runtime实现的。2.runtime有什么作用?1.能动态产生一个类,一个成员变量,一个方法2.能动态修改一个类,一个成员变量,一个方法3.能动态删除一个类,一个成员变量,一个方法3.常用的头文件 #import 包含对类、成员变量
2017-10-18 14:12:54 181
转载 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 733
转载 iOS库 .a与.framework区别
一、什么是库?库是共享程序代码的方式,一般分为静态库和动态库。二、静态库与动态库的区别?静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。三、iOS里静态库形式?.a和.framework四、iOS里动态库形式?
2017-10-13 10:57:33 217
原创 ios键盘弹起tableView的滑动区域问题
在iOS项目开发过程中,经常需要点击textview弹起键盘,但弹起键盘后tableView的可见区域就变小了,如果这时tableView不能在可见区域内滑动,那tableView的内容就不能在键盘弹起的情况下完全显示,这样用户体验就不好了。下面提供一种解决方法。由于大部分控制器类都需要用到tableView,为此可以写一个公共的父类BaseTableViewController继承自UIVi
2017-10-11 10:20:05 1581
原创 iosApp提交到Appstore注意事项
一般在一个多人开发小组,开发一般先在develop分支上,开发结束后合并到主分支master上。合并代码时经常会发生冲突,需要注意:1.head==部分是服务器已有的代码,develop==部分是本地未合并的代码。2.切换到master分枝,在develop分枝上右击选择合并develop到master分枝。注意合并要在本地编译器中操作,操作完将状态转变为以合并,编译通过后将d
2017-09-12 18:06:44 323
原创 根据文本内容自动计算文本高度
在开发过程中,经常需要根据文本内容自适应高度,并设置行间距,这是宽度一般给一个相对固定的宽度,比如屏幕的宽度减去左右两边各15个像素的间距。下面是一个计算自适应高度的标题和内容的代码。sesameRemarkItemModel是一个字典类型,里面包含title和content字符串。#define kCellHeightWithoutText25.0+15.0+12.0
2017-09-08 14:51:14 703
转载 常见HTTP错误代码大全
一些常见的状态码为:200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用详细分解:1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。代码 说明100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认
2017-08-11 14:10:25 266
原创 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 272
转载 IOS---实例化讲解RunLoop
实例化讲解RunLoop之前看过很多有关RunLoop的文章,其中要么是主要介绍RunLoop的基本概念,要么是主要讲解RunLoop的底层原理,很少用真正的实例来讲解RunLoop的,这其中有大部分原因是由于大家在项目中很少能用到RunLoop吧。基于这种原因,本文中将用很少的篇幅来对基础内容做以介绍,然后主要利用实例来加深大家对RunLoop的理解,本文中的代码已经上传GitHub,大家可
2017-07-28 14:39:25 282
转载 TCP,IP,HTTP,SOCKET区别和联系
网络由下往上分为: 对应 物理层-- 数据链路层--网络层-- IP协议传输层-- TCP协议会话层--表示层和应用层-- HTTP协议socket则是对TCP/IP协议的封装和应用(程
2017-07-25 10:15:14 344
原创 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 196
原创 ios分类(Categories)和类扩展(Extensions)的区别
最近在写一个项目,需要写一个公共的方法将十六进制的颜色转换为UIColor,但系统的UIKit框架里面没有这种直接转化的方法,我们又无法在系统的UIColor里面添加这个公共的方法,于是想到了category,顺便总结了下extension。1.首先介绍一下分类:新建一个objective-c File@interface UIColor(Hex)+ (UIColo
2017-07-12 14:59:27 299
转载 iOScopy详解
介绍copy和mutableCopy介绍深拷贝与浅拷贝block为什么要用copycopy相对于直接赋值的好处总结预备知识 :内存的栈区 : 由编译器自动分配释放, 存放函数的参数值, 局部变量的值等. 其操作方式类似于数据结构中的栈.内存的堆区 : 一般由程序员分配释放, 若程序员不释放, 程序结束时可能由OS回收. 注意它与数据结构中的堆是两回事, 分配方式倒是类似于链表.
2017-07-11 11:58:08 260
原创 iOS几个小知识点的总结
1.assin与weak的区别:相同点:都是弱引用。区别:assin如果引用的OC对象销毁了, 指针并不会被自动清空, 依然指向销毁的对象(很容易产生野指针错误: EXC_BAD_ACCESS) weak如果引用的OC对象销毁了, 指针会被自动清空(变为nil), 不再指向销毁的对象(永远不会产生野指针错误)用途:assign一般用在基本数据类型上面, 比如int\double等。w
2017-07-11 10:09:27 257
原创 swift基础之?和!
swift开发中经常会碰到?与!,今天有时间总结一下:?代表定义的变量是个Optional(可选类型),Optional其实是个enum,里面有None和Some两种类型。其实所谓的nil就是Optional.None , 非nil就是Optional.Some, 然后会通过Some(T)包装(wrap)原始值,这也是为什么在使用Optional的时候要拆包(从enum里取出来原始值)的原因。
2017-07-06 14:13:51 210
转载 iOS的三种多线程技术 对比分析
1.iOS的三种多线程技术 1.NSThread 每个NSThread对象对应一个线程,量级较轻(真正的多线程)2.以下两点是苹果专门开发的“并发”技术,使得程序员可以不再去关心线程的具体使用问题ØNSOperation/NSOperationQueue 面向对象的线程技术ØGCD —— Grand Central Dispat
2017-06-27 21:47:41 282
转载 设置App icon图标及修改应用程序名
前言这是iOS开发技巧系列博客的第二篇,本篇主要简单介绍一下如何设置应用程序的icon图标以及修改应用程序名。设置 icon首先我们来看看如何设置App icon图标,设置应用程序的icon图标主要有两种方法:第一种:通过项目的Images.xcassets文件实现。第二种:非正式手段,直接将图片的名字改为icon即可。我们先来看看第一种实现方式,首先我们需要切换到项目工程
2017-06-22 15:10:58 614
原创 如何将自己写的项目上传到github上?
首先,你要先确定自己在Github上有自己的账户名,账户邮箱和密码。如果没有可以先去https://github.com注册,如果有了可以点击Sign In登录。之后,我们开始进行命令行操作(当然你也可以下载客户端进行操作)首先:打开终端,输入: cd 直接将项目文件夹拖进来;然后:第一步:git init第二步:git config --global
2017-06-21 15:57:19 2597
原创 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 7013
转载 iOS中打包.a静态库
1.新建.a静态库工程需要选择Static Library静态库工程模板新建工程,如下图:新建静态库工程实现需要打包的类,如下图:实现需要打包的类2.设置需要暴露的头文件添加Headers, 步骤为:TARGET->Build Phases ->点+号->New Headers Phase,如下图:然后找到He
2017-05-24 17:50:48 274
转载 在一个Xcode页面建立多个工程
Xcode里面是可以同时存在多个工程的。可以通过存放在同一个工作空间来实现同一个Xcode页面存在多个工程,也就是有多个xcodeproj。如下图所示。在Xcode页面中管理3个工程这样不仅可以方便管理几个相似功能的工程,更重要的是,可以实现多工程联编。接下来我们会做一个多工程的Demo建立一个工作空间MyWorkspace。使用方法一建立一个普通的Xcode工
2017-05-19 15:35:05 1348
原创 ios CocoaPods的使用
前言:iOS开发者在开发项目的过程中,经常会用到一些第三方库,如果每次手动添加会显得很麻烦,这时使用CocoaPods来管理会显得十分方便,接下来看具体操作。1.Ruby环境的搭建。尽管Mac OS自带Ruby,但我们需要更新一下。a.查看当前Ruby的版本号:打开终端,输入命令ruby -vb.更新ruby,终端输入:gem sources --remove https:...
2017-05-15 09:34:02 222
原创 iostableView cell默认分割线的去除
iOS程序员在写一个tableView的时候,系统会默认每个row有个分割线,但我们需要显示的数据可能只有几条,这就要去掉多余的分割线。只需要给tableview的footerView一个很小的高度就可以搞定了,见代码:- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)sect
2017-04-26 16:26:25 1334
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人