自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

阿福的专栏

好记性不如多多总结~

  • 博客(329)
  • 资源 (24)
  • 收藏
  • 关注

原创 Loading轮子

iOS开发中,MBProgressHUD, SVProgressHUD做为Loading首先几乎是所有项目都会用到,用于网络请求过程中提示。iOS项目中使用pod引入MBProgressHUD很简单,Podfile中添加 'MBProgressHUD' pod install就完事了Android项目中也有类似的组件:KProgressHUDgithub:GitHub - Kaopiz/KProgressHUD: An implement of ProgressHUD for Androi.

2022-01-05 17:33:43 1216

原创 Android Studio编辑器使用XCode风格主题

对于习惯使用XCode开发,切换到Android Studio之后,编辑器看起来很不习惯,为了提高开发效率,XCode风格主题真是一场及时雨。插件下载github下载地址:GitHub - johncodeos-blog/XcodeKotlinColorScheme: Make Android Studio's Editor looks like XCode官方文档:How to make Android Studio's Editor looks like Xcode | John Codeos

2022-01-05 17:05:25 1789

原创 Android Studio:实现类似XCode中#pragma mark

代码行数多了之后,查找指定的方法越来越困难,影响开发效率,所以代码分组按功能分组很有必要,XCode中使用#pragma mark,Android Studio也有类似支持。在Android Studio中,您可以使用以下步骤添加区域1.打开你正在使用的IDE2.选择你想分组的代码3.按Cmd + Opt + T并select“region .. end region comments”4.现在代码被“// region”/“// endregion”线包围,你可以看到该区域可以折叠5.你

2022-01-05 16:44:09 1571

原创 iOS开发~WKWebView白屏适配

WKWebView虽好,但白屏问题也很苦恼,下面分享一下自己解决问题的过程。公司项目使用Cordova框架,做原生项目嵌入H5,业务复杂了以后,H5资源也越来越大,占用内存越来越多,加载也越来越慢,直到做热更新时候,遇到了白屏问题。第一步:有说白屏时候回调webViewWebContentProcessDidTerminate方法,那就加上吧:- (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView { [w..

2021-11-03 12:17:17 4062

原创 ImportError: cannot import name ‘FieldDoesNotExist‘ from ‘django.db.models‘

环境python3.7django-filter版本过低导致。升级 pip3 install django-filter==2.4.0问题解决

2021-06-20 14:17:19 3218

原创 阿里云配置SSL证书

由于iOS和Android开发对接后端接口都需要HTTPS,当然不强制,不过需要配置一下项目,增加SSL证书过程花费了大约1天时间,原因是网上教程太杂,所以这里记录一下配置过程。环境:Server version: Apache Tomcat/8.5.34Server built: Sep 4 2018 22:28:22 UTCServer number: 8.5.34.0OS Name: LinuxOS Version: 3.10.0-693.2.2.el7.

2021-05-15 16:44:17 610 1

原创 解决flutter desktop 网络请求失败

使用了dio,模拟器和web都没问题,只有desktop不能调接口 需要在macos/Runner/DebugProfile.entitlements文件中添加com.apple.security.network.client。<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyLis

2021-05-15 14:07:47 1133 1

原创 Flutter生命周期

概要生命周期这个话题,无论iOS或Android项目都是一个必须搞明白的一点,因为这涉及到业务逻辑控制,例如Android的onCreate(),iOS的viewDidLoad(),Flutter项目也不例外,也要搞懂生命周期。Android的ActivityonCreate. onStart onResume— — — — — — — —onPause onStop (forever alone onRestart) onDestroy一般情况,登录、注册等逻辑放在onCre

2021-04-28 18:56:10 515 1

原创 Flutter网络请求dio封装

概要:dio已经更新到4.0版本,相对已经很稳定了,不过为了通用性,如果直接应用在项目中,难免比较离散。一般项目开发都是多人共同协作,所以统一的规范,简洁的调用方式,稳定的性能是必不可少的,所以才有二次封装,方便实际项目中使用。首先预览下文件结构:一、整体设计描述Api 对应项目中业务开发时候的调用接口 Code定义了常见请求状态,例如网络错误、超时、成功等 DataHelper定义了数据加密工具代码 DioLogInterceptor页面Loading拦截器,用于网络数据返回加工

2021-04-25 10:26:49 10173 6

原创 Flutter合理拆分widgets

初学Flutter,好多Demo中widgets层层嵌套,最后导致一个页面的代码量非常大,嵌套非常深,不利于维护,于是想到拆分。何时拆分:大Widget:当一个Widget非常大,嵌套层数过多,其中嵌套了很多小Widget的时候,把一个小Widget从大Widget中拆分出来,这样利于维护; 重复Widgets:当一个Widget由多个重复的小Widget组成,应当把小Widget拆分出来; 复杂Widget:当一个Widget有很多小Widgets组成,而且组合关系很复杂的时候,应该拆..

2021-04-24 15:09:37 1048

原创 Flutter项目启动白屏

Flutter项目,手机上运行正常显示页面,Chrome白屏。解决办法:Flutter在运行和构建Web应用程序时,可以在两个不同的渲染器之间进行选择。这两个渲染器是:HTML。CSS,Canvas元素和SVG元素。 该渲染器的下载大小较小。Canvaskit。使用Skia编译为WebAssembly并使用WebGL渲染。 该渲染器与Flutter移动设备和台式机完全一致,具有更快的性能,并且不太可能在浏览器之间出现差异,但下载大小增加了大约2MB。Flutter官方文档上对这个选项的默认设..

2021-04-17 11:39:57 900

原创 Flutter设置部分主题色报错说明

问题一:给Flutter的primarySwatch设置为Colors.blue没错,设置为Colors.white则报错,肉眼看上去两者相同啊,干嘛一个报错一个不报错?primarySwatch虽然可设置主题的各类颜色,但是这里的颜色类是MaterialColor,相当于色域的意思,而像primaryColor的是Color,两者是不同的!而且纯色种的黑色和白色不是MaterialColor!所以不能设置primarySwatch为Colors.white,当前只能从以下选择:redp...

2021-04-16 10:49:47 710

翻译 SpriteKit从零开始~Visual and Audio Effects

介绍在本教程(从零开始)中的SpriteKit系列的第四部分中,我们将看一下SpriteKit提供的各种视觉和音频功能,这些功能可以为您的游戏添加更多细节和多样性。这包括粒子系统,滤镜,灯光和音频。为了跟上我,您可以使用本系列上一教程中创建的项目,也可以在GitHub上下载新副本。本系列中用于游戏的图像可以在GraphicRiver上找到。GraphicRiver是查找游戏插图和图像的理想资源。1.粒子系统在SpriteKit中,术语“粒子系统”是指由类SKEmitterNo...

2021-02-21 18:05:24 241

翻译 SpriteKit从零开始~Physics and Collisions

介绍在本教程中,这是SpriteKit从头开始的系列的第三部分,我们将详细介绍SpriteKit的物理模拟功能以及如何在2D游戏中使用它。

2021-02-19 14:53:26 373

翻译 SpriteKit从零开始~Constraints and Actions

介绍继上一篇SpriteKit基础,这一篇将学习constraints和actions。这些功能用于在SpriteKit中为游戏添加动作和动画,同时限制游戏中节点的位置和方向。您可以使用在本系列的第一个教程中创建的项目,或者在GitHub上下载新副本。1.自定义Node和Scene在向Scene中添加constraints和actions之前,我们首先需要创建一些类,以便我们代码中可以使用Node。根据iOS> Source> Cocoa Touch Class模板创建一个新类P

2021-02-09 18:17:56 320

翻译 SpriteKit从零开始~基础

介绍SpriteKit可在iOS,tvOS和OS X上使用,它是一个框架,使开发人员可以创建高质量的2D游戏,而不必担心OpenGL和Metal等图形API的复杂性。除了为开发人员处理所有图形外,SpriteKit还提供了广泛的高级功能,包括物理模拟,音频/视频播放以及游戏保存/加载。在整个系列中,您将学习有关SpriteKit的所有知识,并开发技巧,然后将其应用于使用此出色框架创建的任何2D游戏中。在本系列中,我们正在创建一个多功能游戏,玩家可以在其中控制汽车,该汽车必须避免路上的障碍。..

2021-02-07 11:27:51 789

原创 iOS开发~清理UIWebView

苹果2020年4月拒绝还在使用UIWebView的App提交,为此要全面清除存在的UIWebView代码。1、首先检索自己代码,把UIWebView相关的代码和注释都要删掉。2、排查哪些三方库使用了UIWebView或者文案涉及到了。打开终端,cd到项目根目录。执行以下命令,就能看到哪些文件内还在有UIWebview的踪迹。 grep -r UIWebView .等查询结果出来,就可以查看到哪些库用到了webView,哪些脚本中有相关代码,删除代码,更新库引用,完美解决...

2020-09-27 16:13:25 560

原创 Flutter学习总结

1. Flutter 是什么?Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。2. Flutter 特性有哪些?快速开发(毫秒级热重载)绚丽UI(内建漂亮的质感设计Material Design和Cupertino Widget和丰富平滑的动画效果和平台感知) 响应式(Reactive,用强大而灵活的API.

2020-09-23 13:40:59 657

原创 iOS开发~Block学习总结

1、block的内部实现,结构体是什么样的?block的结构体如下:struct Block_literal_1 { void *isa; // initialized to &_NSConcreteStackBlock or &_NSConcreteGlobalBlock int flags; int reserved; void (*invoke)(void *, ...); struct Block_descriptor_1 {

2020-09-18 08:02:12 253 1

原创 iOS开发~Runloop学习总结

1、app如何接收到触摸事件的?首先,手机中处理触摸事件的是硬件系统进程 ,当硬件系统进程识别到触摸事件后,会将这个事件进行封装,并通过machPort,将封装的事件发送给当前活跃的APP进程。 由于APP的主线程中runloop注册了这个machPort端口,就是用于接收处理这个事件的,所以这里APP收到这个消息后,开始寻找响应链。 寻找到响应链后,开始分发事件,它会优先发送给手势集合,来过滤这个事件,一旦手势集合中其中一个手势识别了这个事件,那么这个事件将不会发送给响应链对象。 手势没有识别到

2020-09-18 07:38:11 492

原创 iOS开发~KVO学习总结

1、实现原理。在给对象A的属性name添加KVO观察者的时候,runtime会动态创建一个类B,这个类B继承自类A,并且重写了父类的属性name的setter方法,在重写的方法中,在给name成员变量赋值的前后,分别通知调用观察者回调。参考这篇文章2、如何手动关闭kvo?重写被观察对象的automaticallyNotifiesObserversForKey方法,返回NO 重写automaticallyNotifiesObserversOf<key>,返回NO注意:关闭k..

2020-09-18 07:37:42 424

原创 iOS开发~NSNotification相关总结

相关参考1、实现原理(结构设计、通知如何存储的、name&observer&SEL之间的关系等)参考这篇文章2、通知的发送是同步的,还是异步的?同步的3、NSNotificationCenter接收消息和发送消息是在一个线程里吗?如何异步发送消息?通知的接收和发送是在一个线程里实际上发送通知都是同步的,不存在异步操作。而所谓的异步发送,也就是延迟发送,在合适的实际发送。实现异步发送:让通知的执行方法异步执行即可 通过NSNotificationQu.

2020-09-18 06:30:16 489

原创 iOS开发~内存管理总结

1、weak的实现原理?SideTable的结构是什么样的weak:其实是一个hash表结构,其中的key是所指对象的地址,value是weak的指针数组,weak表示的是弱引用,不会对对象引用计数+1,当引用的对象被释放的时候,其值被自动设置为nil,一般用于解决循环引用的。weak的实现原理1、初始化时:runtime会调用objc_initWeak函数,初始化一个新的weak指针指向对象的地址。2、添加引用时:objc_initWeak函数会调用 objc_storeWeak() 函数

2020-09-17 16:33:53 399

原创 iOS开发~Runtime学习总结

1、Runtime的内存模型(isa、对象、类、metaclass、结构体的存储信息等)对象:OC中的对象指向的是一个objc_object指针类型,typedef struct objc_object *id;从它的结构体中可以看出,它包括一个isa指针,指向的是这个对象的类对象,一个对象实例就是通过这个isa找到它自己的Class,而这个Class中存储的就是这个实例的方法列表、属性列表、成员变量列表等相关信息的。/// Represents an instance of a class.s

2020-09-17 15:45:44 426

原创 合并两个有序数组,且合并后有序,同时去重

一、算法方案两个指针分别指向两个数组,当其中一个小于另外一个就移动该指针,反之则移动另外一个指针 如果相等则均向后移动. 结束条件是,当任意一个数组的指针移到末尾则跳出循环 把另外一个数组没有比较完的部分直接放到新数组里二、代码实现func mergeSortedArray(_ a: [Int], b:[Int]) ->[Int] { var i = 0 var j = 0 var ans = [Int]() //合并数组

2020-09-15 15:19:05 849

原创 二叉树的最近公共祖先

一、算法方案1、 如果结点 p、q 都存在且为左右结点,那么根结点 root 就是最近公共祖先;2、 如果结点 p、q 都存在且都为左结点,那么在根结点 root 的左子树查找;3、 如果结点 p、q 都存在且都为右结点,那么在根结点 root 的右子树查找。二、代码实现/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left;

2020-09-15 14:46:47 105

原创 二叉树的深度

一、算法方案考虑以下几种情况:如果是空的二叉树,深度为0;只有根节点,深度为1;根节点只有左子树,深度为左子树的深度加1;根节点只有右子树,深度为右子树的深度加1;根节点既有左子树又有右子树,深度为取左右子树深度的最大者再加1。二、代码实现int maxDepth(struct TreeNode* root){ if (root == NULL) { return 0; } int lenLeft = maxDepth(root->l

2020-09-15 14:32:05 827

原创 单链表翻转

一、算法方案p指向第一个有效节点,头指针headpointer的指针域为空,p逐个后移,并将p指向的当前元素以头插的方式插入到头指针二、代码实现/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */int add_node_head(struct ListNode* head, struct ListNode*

2020-09-15 14:17:20 69

原创 单链表是否相交

方法一: 暴力法对链表A中的每一个结点遍历,然后遍历整个链表B,并检查链表B中是否存在结点相同。复杂度分析时间复杂度 :(mn)(mn)。 空间复杂度 :O(1)O(1)。方法二:哈希表法遍历链表 A 并将每个结点的地址/引用存储在哈希表中。然后检查链表 B 中的每一个结点是否在哈希表中。若在,则为相交结点。复杂度分析时间复杂度 :O(m+n)O(m+n)。 空间复杂度 :O(m)O(m)或O(n)O(n)。方法三:双指针法创建两个指针pA和pB...

2020-09-15 14:03:57 139

原创 单向链表是否有环

一、算法方案1、快慢双指针法,快指针一次走两步,慢指针一次走一步,如果有环必会相遇2、集合法二、代码实现1、快慢双指针法//swift实现 public class ListNode { public var val: Int public var next: ListNode? public init(_ val: Int) { self.val = val self.next = nil } }f

2020-09-15 13:24:12 173

原创 细聊二分查找算法

1、二分法(数学领域术语)对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。二分法(Bisection method) 即一分为二的方法. 设[a,b]为R的闭区间. 逐次二分法就是造出如下的区间序列([an,bn]):a0=a,b0=b,且对任一自然数n,[an+1,bn+1]或者等于[an,cn],或者等于[cn,bn],其中cn表示[an,bn]的中点.

2020-09-15 09:58:29 874

原创 算法~十大经典排序算法

一、八大排序算法二、栈&队列三、字符串处理四、链表五、二叉树相关操作六、深搜广搜七、基本的动态规划题、贪心算法、二分查找...

2020-09-14 16:30:38 485

原创 iOS开发~App瘦身

概要App 的包大小做优化的目的就是为了节省用户流量,提高用户的下载速度,也是为了用户手机节省更多的空间。另外 App Store 官方规定 App 安装包如果超过 150MB,那么不可以使 OTA(over-the-air)环境下载,也就是只可以在 WiFi 环境下载,企业或者独立开发者万万不想看到这一点。免得失去大量的用户。同时如果你的 App 需要适配 iOS7、iOS8 那么官方规定主二进制 text 段的大小不能超过 60MB。如果不能满足这个标准,则无法上架 App Store。另一

2020-09-11 23:35:21 1038

原创 iOS开发~内存优化

一、为什么需要内存优化当我们开发iOS应用时,好的性能对我们的App来说是很重要的。你的用户也希望如此,但是如果你的app表现的反应迟钝或者很慢也会伤害到你的审核。 然而,由于ios设备的限制有时很难工作得很正确。我们开发时有很多需要我们记住这些容易忘记的决定对性能的影响。 这是为什么我写这篇文章的原因。这篇文章用备忘录的形式集合了28个技巧和诀窍可以用来提高你的app性能。所以保持阅读来给你未来的App一个很不错的提高。二、内存优化技巧以下这些技巧分为三个不同那个...

2020-09-11 15:08:56 751

原创 iOS开发~Crash优化

一、概要iOS App开发中和上线后,都会遇到程序异常退出的情况,导致崩溃的原因有很多,如果是在调试的过程中,可以通过设施断点或者打印关键信息的方式来进行调试,如果对于一些复杂模块非必现的异常崩溃,这种方式有时难以定位问题,而且对于已经发布上线的应用,这种方式更是无能为力。下面详细讨论崩溃产生的原因以及如何处理。二、Crash的捕获1、Crash产生原因1、应用中有Bug。 2、Watchdog 超时机制 3、用户强制退出 4、低内存终止 5、其他违反系统规则的操作,大部分是内存问题 .

2020-09-11 14:31:46 572

原创 iOS开发~卡顿优化

应用卡顿是让人头疼的问题,不像闪退一样直观明了,可以直接通过异常信号或调用栈分析得到,常常让人无处下手。好的用户体验需要我们把细节做到位,画面掉帧会导致卡顿感,造成不好的印象。卡顿是如何造成的,下面详细讲述。认识卡顿一些概念FPS:Frames Per Second,表示每秒渲染的帧数,通过用于衡量画面的流畅度,数值越高则表示画面越流畅。 CPU:负责对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制(Core Graphics)。 GPU: 负责

2020-09-10 16:00:11 1142

原创 iOS开发~耗电量优化

一、概要耗电量分析是衡量应用性能表现的一个重要指标,要做好一款app,不仅仅是实现功能,我们需要考虑很多性能指标,让用户用的更爽,在开发过程中,要充分考虑到各项性能指标,比如定位精度,更高的精度,往往意味着更高的能耗,因此要平衡好精度和功耗,避免我们的app过多的过多的电量消耗,而界面卡顿可能意味着大量的多余计算,不仅影响流畅度,影响电量消耗,网络的不合理使用,也会增加耗电量,这些都是影响耗电量和用户体验的重要因素。用户可以在设置-电量查看过去24小时及七天,自己 app 耗电情况排行榜。如果你的.

2020-09-10 11:52:27 2445

原创 iOS开发~Time Profiler使用

Time Profiler时间分析工具,能帮助我们分析代码的执行时间,找出导致程序变慢的原因下面就用三个方法来进行相关测试://NSLog-(void)printLogOC{ //代码方式获取运行时间 double dateStart = CFAbsoluteTimeGetCurrent(); for (int i = 0; i<10000; i++) { NSLog(@"---->NSLOG:%d",i); } doubl

2020-09-09 16:39:19 1113

原创 iOS开发~App启动时间优化

概要App启动时长是其性能的重要指标之一,直接影响着用户对App的第一印象。随着版本迭代,产品形态不断完善,业务功能日趋复杂,项目也从一个独立业务App逐渐演变成一个多模块项目,甚至成为一个平台型App,可能同时承载多个业务模块,因此,更多更复杂的工作需要在App启动的时候被完成,由此可见,启动速度的优化必然就是 App 开发过程中,不可或缺的一个环节。一般情况下,App 的启动分为冷启动和热启动。冷启动:App 不在系统进程中,比如设备重启后,或是手动杀死 App 进程,又或是 App 长时间

2020-09-09 14:01:59 630

原创 Swift 中的 as,as?,as! 的区别

在我的认知中,如果as能成功的话,说明as?和as!也一定会成功。在大多数情况下这是对的,但凡是总有例外。看到下面的代码,不知道你能不能看出问题。print(4 as Double) // print 4.0print(4 as! Double) // crash第一行代码成功执行,但第二行代码会有编译器⚠️,而且会造成崩溃,这是为什么呢?造成这种情况的原因就是 as 和 as? 与 as! 的执行机制不同。as 是在编译期执行的,而 as? 和 as! 是在运行时执行的。在...

2020-09-08 06:48:46 481

总览汇编寄存器,方便记忆和复习。

总览汇编寄存器,方便记忆和复习。寄存器是CPU的组成部分,因为在CPU内,所以CPU对其读写速度是最快的,不需要IO传输, 但同时也决定了此类寄存器数量非常有限,有限到几乎每个存储都有自己的名字,而且有些还有多个名字。

2020-09-15

程序员健康指南

对于一个程序员,往往长期面对电脑,久坐不动,缺少运动,不合理的饮食习惯,熬夜等等。这些不良的生活习惯,往往导致程序员健康出现一些问题,如颈椎病,背部疼痛,腕管综合征等等。

2017-10-17

bugfree3.0.4

新特性: 1. case支持导出导入注释 2. bug支持新增导入功能 3. 我的查询增加“抄送给我”的默认查询 4. 添加产品用户组管理员静态页面 5. 支持case、result等tab页面隐藏功能(如何修改) 6. 详情页上方toolbar栏固定显示 7. 注释栏和复现步骤栏可展开折叠显示 易用性: 1. 安装检测json_encode支持情况 2. 运行环境ldap模块检查

2015-11-24

iPhone6、6P适配Demo

目前为止,iPhone屏幕尺寸已经有四种: 3.5(inch):1/3G/3GS/4/4S 4.0(inch):5/5S/5C 4.7(inch):6 5.5(inch):6Plus 看一下iPhone4~6(+)的屏幕高宽比: iPhone4(s):分辨率960*640,高宽比1.5 iPhone5(s):分辨率1136*640,高宽比1.775 iPhone6:分辨率1334*750,高宽比1.779 iPhone6+:分辨率1920*1080,高宽比1.778 可粗略认为iPhone5(s)、6(+)的高宽比是一致的(16:9),即可以等比例缩放。因此可以按宽度适配: fitScreenWidth= width*(SCREEN_WIDTH/320) 这样,共有iPhone3/4/5、6、6+三组宽度,在iPhone6、6+下将按比例横向放大,也就是说我们要适配宽、高、字号大小(如果说Android屏幕适配是地狱一般,那目前来看iPhone屏幕适配还是很美好的)

2015-09-02

JavaScriptCoreDemo

IOS7之前,接触 JS 更多的是处理UIWebView的时候,如:http://blog.csdn.net/zfpp25_/article/details/8650412 但IOS7引入了JS框架<JavaScriptCore/JavaScriptCore.h>,给了“纯IOS程序员”一个枯木逢春的契机~学习强大的 JavaScript。

2015-03-18

Core Animation(二)动画基础部分

上一篇简单的描述了Core Animation相关的内容,并且亲自动手实践了一个动画,同时也提到了“隐式动画”和“显示动画”,也提到了UIKit动画,可见iOS的动画部分确实有些内容需要掌握

2015-02-09

学习Core Animation例子CADemo1

Core Animation包含于QuartzCore.framwork中,是iOS与OS X平台上负责图形渲染与动画的基础设施

2015-02-08

Slidingmenu-MenuDemo

一个很开的开源项目,android侧边栏效果,由于Github上的demo存在问题,所以亲自集成了一下,希望可以帮助到遇到同样问题的人。

2015-01-14

iOS8开发~UI布局(三)深入理解autolayout

iOS8开发~UI布局(三)深入理解autolayout中的所有Demo

2014-10-10

iOS8AutoLayout-Demo3

iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解

2014-10-09

iOS8开发~UI布局(二)Demo

iOS8开发~UI布局(二)storyboard中autolayout和size class的使用详解

2014-10-09

iOS8-AL8-Demo

iOS界面布局SizeClass使用第一个Demo,用于演示博文中提到的知识点。

2014-10-08

OC与Swift混编Demo

Swift与OC混编,其中涉及到具体项目配置及其代码举例。

2014-06-11

Swift版本UI实现

Swift版本UI实现常用UI控件,新的编程语言,新的习惯。

2014-06-07

自定义Xcode模版

Xcode自定义模版中的Demo,包含工程模版自定义和文件模版自定义。

2014-05-30

Git入门教程

Git入门教程,详细举例git用法,简单入门

2013-12-29

git使用简介(第一版)

git使用简介(第一版),介绍git入门知识

2013-12-29

最好的git中文教程

最好的git中文教程,实际应用举例,详细讲解

2013-12-29

很好用的文本编辑器Sublime Text(Mac版)

很好用的文本编辑器Sublime Text(Mac版)

2013-08-13

Android开发ADT-21.0.0.zip

Android开发 ADT-21,解决老版本的BUG

2013-04-30

Android开发ADT-20.0.3

Android开发ADT-20.0.3,可以解决Eclpse不能拷贝和粘贴。

2013-04-30

C语言之顺序表与链式表

C语言之顺序表与链式表,详细讲解了顺序表与链式表,尤其单链表实现的很舒服。

2013-04-19

Versions免费版

现在Versions SVN代码管理工具收费了,这里提供一版低版本免费的Versions。

2013-03-26

空空如也

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

TA关注的人

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