iOS基础
众拾达人
如果你不改变什么,那什么都不会改变!
展开
-
iOS架构-组件化(项目实战-项目首页架构)
UI架构设计设计模式:外观模式、代理模式、适配器模式(adapter)注意:1版本只是搭建结构!一. 1.0-Tab搭建二. 1.1-新增UICollectionView主页->整体设计基于->UICollectionView(滑动组件)->左右滑动嵌套-&am原创 2019-03-01 10:20:09 · 8429 阅读 · 1 评论 -
iOS开发_数据加密安全防护
散列(哈希)算法 :MD5 SHA256/512 算法公开 不同的数据加密之后的结果是定长度的 MD5 32个字符! 数据“指纹”,它只是数据的一部分 不可逆,但是同样的数据 MD5值是一样的 散列碰撞:不同的数据得到了同样的HASH值!!开发中,客户端开发,密码加密!服务器不知道用户的密码!所以现在没有“找回密码”的功能,只有重置密码!对称:AES DES 3DES :明文—》密原创 2018-04-24 18:00:55 · 465 阅读 · 0 评论 -
iOS开发之动画篇-基础篇1
基础篇:一.制作动画的原理十二个基本的动画原理:网页动画的十二原则(参考全部开源的HTML和CSS代码实现) 二.寻找灵感 1.知名设计师共享平台:Dribbble相当于程序员的gitHub2.pttrns:手机设计较多三.制作动画的基础 1.iOS动画UIView动画概述 苹果给开发者的UIView实现API:UIView.animateWithDuration四.一些动画的特效实现 1.原创 2017-07-28 10:07:57 · 362 阅读 · 0 评论 -
iOS开发错误总结-持续更新
Unknown class ViewController in Interface Builder file 原因:新工程中删除了自带的ViewController,导致Main.storyboard找不到入口文件,错误等级低,不影响工程。解决方式:Main.storyboard->选中ViewController->Show the Identity inspector (属性栏第三个)->C原创 2017-08-04 11:37:59 · 354 阅读 · 0 评论 -
JSBinding iOS与JS交互(When-iOS-loves-JS)
What’s JSBindingIt’s Not Hybrid It’s NOT a new technologyJSBinding 绑定JS和NativeJSBinding和HyBrid的对比原生OC语音和脚本JS语言对比 API重点原创 2017-07-26 16:26:20 · 518 阅读 · 0 评论 -
iOS开发常用设计模式
一 iOS中都有什么设计模式?1.代理模式 2.观察者模式 3.MVC模式 4.单例模式 5.策略模式 6.工厂模式二 各个设计模式的作用?(一)代理模式在cocoa框架中的Delegate模式中,委托人往往是框架中的对象(视图中的控件、表视图神马的),代理人往往是视图控制器对象。在我们这个例子中UITableView是委托人,代理人首先得满足一个条件:就是在.h文件中申明它拥有代理资原创 2017-08-08 15:57:54 · 340 阅读 · 0 评论 -
iOS面试题学习(1)内存管理
1.简述OC中内存管理机制。与retain配对使用的方法师dealloc还是release,为什么?需要alloc配对使用的方法是dealloc还是release,为什么?readwrite,readonly,assign,reatin,copy,nonatomic,actomic,strong,weak属性的作用?答案:OC中使用了一种叫做引用计数的管理机制来管理内存中的对象。OC中的每个对象都对原创 2017-06-06 15:24:22 · 520 阅读 · 0 评论 -
iOS面试题(2.类变量的@protected,@private,@public,@package声明各有什么含义)拓展:常用框架和第三方框架
2.类变量的@protected,@private,@public,@package声明各有什么含义 @private:作用范围只能在自身类 @protected:作用范围在自身类和继承自己的子类(默认) @public:作用范围最大,可以在任何地方被访问 @package:这个类型最常用于框架类的实例变量,同一个包内能用,跨包就不能访问。对于框架类的拓展:iOS常用基础框架 Founda原创 2017-06-07 12:06:56 · 844 阅读 · 0 评论 -
iOS开发之 __block 与 __weak的区别理解
资料来源1 资料来源2__block对象在block中是可以被修改、重新赋值的。使用了__weak修饰符的对象,作用等同于定义为weak的property。自然不会导致循环引用问题,因为苹果文档已经说的很清楚,当原对象没有任何强引用的时候,弱引用指针也会被设置为nil。因此,__block和__weak修饰符的区别其实是挺明显的: 1.__block不管是ARC还是MRC模式下都可以使用,可以原创 2017-07-28 10:32:22 · 2418 阅读 · 0 评论 -
实用贴 | Xcode模拟器卡顿
有的时候,我们不小心按下快捷键commond + T会使模拟器变得貌似很卡顿,其实是开启了slow Animations 功能。把debug下的show animations 前面的钩去掉即可原创 2018-08-09 15:43:07 · 2862 阅读 · 0 评论 -
经验贴 | UITableView中Cell嵌套UIWebView时获取高度
使用场景:tableView 的 cell嵌套webView<webView加载一般是加载一个静态网页,或者加载一段html片段>的时候,需要获取webView的内容的高度,然后计算相应的cell的高度,进而展示一些丰富的富文本之类的东西,是期中的一个使用场景。当然可能还有其他的使用场景。 下面说一下其中的两个小坑,或者说注意事项。获取webView高度的方法 获取webV...原创 2018-08-10 10:48:00 · 1300 阅读 · 0 评论 -
错误贴 | iOS pod报错 /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter
pod 报错-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directoryMacOS 升级后pod 出现的问题1、更新gem:sudo gem update –system...原创 2018-08-14 15:00:00 · 2691 阅读 · 0 评论 -
iOS架构-组件化(项目框架搭建2)
静态库引用静态库如果像上图一样,直接在业务层组件引用数据层组件的文件,则会报错,因为组件之间没有建立引用关系。如下图静态库如何引用Pods第三方库拷贝Podfile文件到项目,打开终端执行pad install直接引用Pod下面的YYModel,项目会报错配置第三方库层级调用1.网络基础库结构2.网路层和业务层(调用关系)-&gt;交互3.业务分层结构4.U...原创 2019-02-14 11:32:07 · 1596 阅读 · 1 评论 -
iOS架构-组件化(Carthage管理工具)
一、Carthage项目管理工具使用?Step 1:安装/更新Homebrew工具1、/usr/bin/ruby -e &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&amp;quot;2、brew install carthage3、brew link carthage4、brew ins...原创 2019-02-22 10:17:38 · 1093 阅读 · 0 评论 -
iOS架构-组件化(项目框架搭建)
组件化设计方案方案1.静态库方式 + Carthage方式方案2.第三方管理工具CocoaPods方式、Carthage方式组件化设计应用1、项目开发需求:业务分层四层(示例项目分四层,很多主流项目也是这么分层的)网络层:NetworkLayer(组件一)-&amp;gt; 静态库-&amp;gt;.a文件业务层:BusinessLayer(组件二)-&amp;gt; 静态库-&amp;gt;.a文件数据原创 2019-02-13 10:27:33 · 968 阅读 · 0 评论 -
iOS自动化布局-AutoLayout约束优先级
约束的优先级AutoLayout添加的约束中也有优先级(Priority),优先级的数值1~1000,分为两种情况:一种情况是我们经常添加的各种约束,默认值1000(最大值)优先执行,条件允许的话系统会自动满足我们的约束需求。第二种就是固有约束(intinsic content size)严格说这种更像UILabel和UIButton的一种属性,但是在Autolayout中需要满足属性取值...原创 2018-12-03 18:29:31 · 2105 阅读 · 0 评论 -
iOS进阶_KVC(进阶使用)
1、KVC与字典//KVC与字典-(void)dictionaryTest{ WTPerson * p = [WTPerson new]; NSDictionary * dict = @{ @&quot;name&quot;:@&quot;wt&quot;, @&quot;age&原创 2018-12-12 18:17:01 · 480 阅读 · 0 评论 -
iOS进阶_KVC(基本使用&KVC赋值取值过程分析&KVC自定义&异常处理)
KVC(Key-value coding)键值编码基本使用实例:WTPerson.h#import &amp;lt;Foundation/Foundation.h&amp;gt;@interface WTPerson : NSObject{// @public //@protect默认 NSString * _name;}/** name **///@property(n...原创 2018-12-07 17:26:32 · 1346 阅读 · 1 评论 -
iOS 仿支付宝首页样式
效果图: 了解一下他们的层级关系,还是先看图,方便解释:图片已经标明的很明白,我们在控制器先放上一个UIScrollView,在它的上面分别放上一个HeaderView(UIView)和一个UITableView。这时需要控制UITableView不能滑动,并且在设置高度时保持和行高*行数一致,也就是说这个方法适用于一些UITableView不必显示过多的页面,这里面不参与U...原创 2018-08-27 14:52:40 · 667 阅读 · 0 评论 -
iOS集成Bugly详解
异常上报SDK 集成通过CocoaPods集成新建项目 cd 项目目录 vim Podfile#source 'https://github.com/CocoaPods/Specs.git'inhibit_all_warnings!platform :ios, '7.0'target 'BuglyDemo' dopod 'ReactiveCoc...原创 2018-08-15 14:33:39 · 6377 阅读 · 1 评论 -
iOS面试题 3. weakself和strongSelf的使用
问题: 我们知道,在使用 block 的时候,为了避免产生循环引用,通常需要使用 weakSelf 与 strongSelf,写下面这样的代码:__weak typeof(self) weakSelf = self;[self doSomeBlockJob:^{ __strong typeof(weakSelf) strongSelf = weakSelf; if (strong原创 2017-08-08 10:40:27 · 1065 阅读 · 0 评论 -
iOS|开发小技巧之UIView创建xib
我们有的时候在创建UIView的时候,想要使用xib进行创建视图发现,xib文件不能和UIView文件一起创建。所以,我们要单独创建xib文件。 我们选择Empty文件,而不要选择View文件。记得文件名和你之前创建的UIView文件名要一致。创建好一个空的xib文件以后,拖一个UIView控件到视图上。然后进行文件关联。但是我们发现xib的UIView控件不能更改大小,所以还要设置一下。原创 2017-07-31 15:05:04 · 7719 阅读 · 1 评论 -
定位城市+iOS8 定位问题
在IOS8中定位功能新增了两个方法:- (void)requestWhenInUseAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);- (void)requestAlwaysAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);原创 2016-04-22 09:57:05 · 399 阅读 · 0 评论 -
定制化UINavigationBar
//FirstViewController// 定制化UINavigationBar- (void)customNavigationBar { // 按钮被挡住,原因是:navigationbar的透明度默认为YES // 先取出navigationbar UINavigationBar *bar =self.navigationControl原创 2016-04-19 09:06:42 · 350 阅读 · 0 评论 -
iOS开发设置单独界面无横屏
//IOS 6.0 以上禁止横屏- (BOOL)shouldAutorotate{ return NO;}//IOS 6.0 以下禁止横屏- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return NO;}原创 2016-04-07 09:54:33 · 526 阅读 · 0 评论 -
iOS开发设置状态栏字体颜色
状态栏的字体为黑色:UIStatusBarStyleDefault状态栏的字体为白色:UIStatusBarStyleLightContent一、在info.plist中,将View controller-based status bar appearance设为NO状态栏字体的颜色只由下面的属性设定,默认为白色:// default is UIStatusBarS转载 2016-04-06 15:41:51 · 420 阅读 · 0 评论 -
iOS 使用GCD同步请求的小例子<1>
需求是,一个页面要同时做两个网络请求,请求结束后刷新UI 使用GCD的方法://创建队列dispatch_queue_t queue= dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); //创建组 dispatch_group_t group= dispatch_group_cre转载 2016-05-13 16:14:52 · 299 阅读 · 0 评论 -
iOS开发判断版本号不同
/* //判断是否是第一次启动或者版本号不同时 NSString * key = @"CFBundleVersion"; // 上一次打开的版本号 (存储在沙盒中的版本号) NSString * lastVersion = [[NSUserDefaults standardUserDefaults] objectForKey:key];原创 2016-04-18 17:46:30 · 396 阅读 · 0 评论 -
label中的文字类似跑马灯的效果
label中的文字类似跑马灯的效果 转载▼一行中的文字实现在固定的区域跑马灯效果!h文件:#import @interface MyLabel : UIViewController {UILabel *label;UILabel *big;}@property (nonatomic, ret转载 2016-04-13 11:34:29 · 753 阅读 · 0 评论 -
iOS近场通信(蓝牙开发,WIFI开发)
iOS近场通信(蓝牙开发,WIFI开发)2016-03-21 15:12阅读:1831 AirDrop (UIActivityViewController类)功能:实现iOS设备间的文件和数据分享。AirDrop使用蓝牙来扫描周围的设备,当两台设备通过蓝牙建立起了连接,考虑到更快速的数据传输,它就会创建点对点的Wi-Fi网络来连接两部iOS 设备。但并不意味着为了使用AirDrop而需转载 2016-04-08 13:42:01 · 1065 阅读 · 0 评论 -
IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
转载自任海丽的博客原址:http://blog.csdn.net/rhljiayou/article/details/9919713首先了解一下CGContextRef:An opaque type that represents a Quartz 2D drawing environment.Graphics Context是图形上下文,可以将其理解为一块画布,我们可转载 2016-04-27 11:50:23 · 273 阅读 · 0 评论 -
iOS 各种UI控件属性设置
UILabel//视图已经加载完了,可以进行ui的添加了- (void)viewDidLoad { [superviewDidLoad]; // Do any additional setup after loading the view. //初始化UILabel注意指定该对象的位置及大小 UILabel *lb = [[UILabel原创 2016-04-29 10:22:50 · 1104 阅读 · 0 评论 -
iOS MJRefresh下拉刷新 上拉加载(可添加gif图版) 小结
1.首先去github上下载最新版 MJ刷新库 下载MJ链接 2.tableVIew中加入相关代码_tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, MCAPPWidth, MCAPPHeight - 64)];_tableView.backgroundColor = myCle转载 2016-05-26 09:09:30 · 6528 阅读 · 0 评论 -
iOS基础教程-SQLite数据库操作(二简单实例学生信息增删改查数据库操作)
学生名单管理界面实现数据库的增删改操作关于UI部分,我们使用storyboard简单完成,在上一篇文章中有详细的描述iOS基础教程-SQLite数据库操作(一 StoryBoard操作 SQLite操作前准备工作),本篇结束以后,就可以完成一个利用SQLite进行数据库操作的小Demo示例。数据库操作最基本的无非就是增加,删除,改动,查询四个功能 修改数据分为下图中的几个步骤 第一步 sqlit原创 2017-07-21 14:56:44 · 1392 阅读 · 2 评论 -
iOS开发-国际化-配置App多语言
作者:大慈大悲大熊猫 链接:http://www.jianshu.com/p/1edd4bda6fe5 來源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。基本设置 第一步:先在Project的info里添加所需要支持的语言,这里选择的是Chinese(Simplified)和English-Development Language。第二步:创建Localizab转载 2017-07-18 11:23:51 · 727 阅读 · 0 评论 -
微信支付—前端+服务器流程梳理(适用于新手观看)
前言前一阵子有朋友初次集成微信支付,遇到很多坑。现在小伙伴终于集成完毕,并写下了本篇博客,我一直以来也想整理一下,无奈本人懒的整理,这次正好借用一下小伙伴的笔记,哈哈。网上关于微信支付的文章很多,但是感觉写的很多而且很乱,而且都是讲客户端和服务端全都写出来,搞得看的人根本搞不懂在客户端应该写写什么,在服务端应该写些什么;让人头很大!在这里主要区分客户端和服务端应该进行的操作流程!其实现流程也是按照微原创 2017-07-21 15:11:38 · 4673 阅读 · 0 评论 -
iOS基础教程-SQLite数据库操作(一 StoryBoard操作 SQLite操作前准备工作)
内容源自:慕课网 Keegan 视频讲解,所做学习笔记。简介:本章由简入繁地对SQLite中增、删、改、查的语法进行详细的讲解,并且以实例的形式演示在项目开发中对SQLite这四中语法的使用。步骤清晰、易懂,很容易就能上手优点:占用资源低,可移植性强,速度快SQLite目前版本是SQLite3,我们使用的mac系统默认是会安装SQLite,所以我们iOS也内置了SQLite,我们可以直接调用SQLi原创 2017-07-19 18:13:36 · 575 阅读 · 0 评论 -
iOS开发-CocoaPods使用详细说明
转载自有梦想的蜗牛的博客,原址:http://blog.csdn.net/showhilllee/article/details/38398119 一、概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库。二、安装 由于网上的教程基本都大同小异,但细节之处还不是很完善,原创 2017-07-07 12:04:51 · 520 阅读 · 0 评论 -
微信支付服务端开发总结
原文链接:http://blog.csdn.net/baple/article/details/68059283前言 最近应公司业务需求,把微信支付完成了,当然已经顺利上线。但是开发的过程是也是踩了很多坑,下面我就先说说开发流程,以及在开发中遇到的大大小小的坑。开发流程 首先,看一下微信开方平台关于支付的一个时序图,如下: 微信支付时序图 https://pay.weixin.qq.com/转载 2017-07-14 17:30:53 · 3833 阅读 · 0 评论 -
iOS 报错:没有查看权限the file "xxx.app" couldn't be opened because you don't have permission to view it.
iOS the file "xxx.app" couldn't be opened because you don't have permission to view it.问题解决方法汇总(1) 最近重构项目,增加target来区分环境进行差异化编译配置。报错the file "xxx.app" couldn't be opened because you don't转载 2016-09-09 09:59:23 · 4462 阅读 · 0 评论