自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CocoaPods创建自己的开源库和私有库

通过CocoaPods创建开源库、私有库,最关键的是*.podspec的编写。 如果电脑上还未安装CocoaPods,可以参考:新版CocoaPods的安装。创建项目和.podspec文件如果你已经有了项目代码,可以使用pod命令创建.podspec:# 项目路径下pod spec create 'KMPinHeaderLayout'如果还没有项目,可以使用:pod lib create 'KM

2017-06-08 17:53:24 937

原创 KVC、KVO小结

KVO属性依赖看一个例子:我们的模型类 LabColor 代表一种 Lab色彩空间里的颜色。和 RGB 不同,这种色彩空间有三个元素 l, a, b。我们要做一个用来改变这些值的滑块和一个显示颜色的方块区域。 @interface LabColor : NSObject/// The @b L component in LAB color space@property (nonatomic) d

2017-06-06 10:32:10 576

原创 iOS推送小结

普通推送基本设置1. 创建项目,开启远程推送功能在Cababilities中打开Push Notification开关 2. 编码注册通知#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0#import <UserNotifications/UserNotifications.h>#endif- (BOOL)application:(UIA

2017-05-25 10:51:58 916

原创 iOS可变参数和Format Function

函数中使用可变参数 使用NS_REQUIRES_NIL_TERMINATION 检查参数时候nil 结尾,可变参数非nil 结尾时会造成崩溃。- (void)sumup:(NSNumber *)num,... NS_REQUIRES_NIL_TERMINATION { NSNumber *rst = @0; if (num) { rst = @(rst.floatV

2017-03-03 12:03:53 1243 1

原创 关于Core Animation

层次Core Animation是不会修改CALayer的属性的,它维护了三个平行的layer层次结构: model tree(模型层树)、presentation tree(表示层树)、rendering tree(渲染树).模型层反应了我们能直接看到的layer的状态,表示层是动画正在表现的状态的近似值,渲染层对Core Animation是私有的。保持动画后状态保持动画完成后状态的两种方法:

2017-01-22 18:13:26 391

原创 横竖屏切换

一、重载根控制器@property(nonatomic, readonly) UIInterfaceOrientationMask supportedInterfaceOrientations在这个属性的文档中有如下解释:When the user changes the device orientation, the system calls this method on the root v

2017-01-21 18:01:41 356

原创 Method Swizzling的方法

开发中总会遇到需要使用Method Swizzling的时候,记录一下Method Swizzling的正确方法一、方法以hookUIViewController 为例#import <objc/runtime.h>@implementation UIViewController (Tracking)+ (void)load { static dispatch_once_t onceToke

2017-01-17 12:01:55 930

原创 使用altool上传IPA

准备altool工具路径/Applications/Xcode8.1.app/Contents/Applications/Application\ Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool可以在~/.bash_profile 中设置别名,以省去每次输入这么一长串路径

2017-01-10 15:08:57 4586 1

原创 新版本CocoaPods安装

自己留存一份,及时更新,省得每次搜索。开始吧~1. (可选)如果需要安装最新版本的pod,更新RubyGemgem -v查看当前Gem版本 sudo gem update --system 可能需要翻墙支持也可以选择使用RVM安装多版本Ruby。2. 更换Ruby源早期常用的几个源都已经失效,包括后来的https淘宝源。目前使用https://gems.ruby-china.org/gem so

2017-01-10 14:44:11 1078

原创 Mac远程操作

默认被连接的电脑开启了远程登录 1. 远程桌面: 在需要登录的Mac电脑A上设置-共享,中开启远程桌面、文件共享、远程登录。之后其他电脑可以通过A的IP远程连接桌面。Mac可以直接在Finder左边栏的共享中找到要连接的设备,或者在Safari中输入vnc://A的ip 进行远程桌面登录SSH、SCPssh -l 用户名 -p 端口号 ip地址 进行SSH远程登录。scp远程拷贝,可以将本地

2016-12-26 13:06:12 1041

原创 Mac终端安装DMG

切换到下载内容存放目录下载DMG文件安装DMG,默认在/Volumes/下复制.app到/Applications/下推出安装卷轴# 1. cd ~/Downloads#2. 下载curl -O resourceUrl# 3. 安装DMG,会安装到/Volumes下hdiutil attach xxx.dmg# 4.1 复制.app文件夹到Application下cp -rf ./

2016-12-20 17:01:03 2833

转载 Mac下终端快捷键备忘

在shell命令终端中,Ctrl+n相当于方向向下的方向键,Ctrl+p相当于方向向上的方向键。在命令终端中通过它们或者方向键可以实现对历史命令的快速查找。这也是快速输入命令的技巧。 在命令终端中可以通过Ctrl+r 实现快速检索使用过的历史命令。Ctrl+r中r是retrieve中r。Ctrl+a:光标回到命令行首。 (a:ahead)Ctrl+e:光标回到命令行尾。 (e:end) Ctrl+b

2016-12-16 18:22:32 597

原创 ProtocolBuffer ObjectiveC配置使用

配置环境和安装 1.1 安装HomeBrew,使用brew -v查看是否安装了HomeBrew,如果未安装 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 安装。 1.2 安装ProtocolBuf依赖库,brew install automake,brew ins

2016-12-05 12:22:40 340

原创 判断iPhone的WiFi是否打开

判断WiFi是否连接可以使用Reachability进行判断,那么WiFi是否打开应该怎么判断呢? 下面是两种完全基于不同思路的方法:方法一: 使用SystemConfiguration.framework 库进行判断#import <ifaddrs.h>#import <net/if.h>#import <SystemConfiguration/CaptiveNetwork.h>- (BO

2016-11-22 16:57:50 793

原创 Layer动画的停止与恢复

CALayer和CAAnimation都实现了CAMediaTiming 协议,可以通过CALayer 中实现的协议中的属性来控制动画。 停止动画:通过将speed设置为0,并将timeOffset调整到合适的值。 Apple 文档说明/* The rate of the layer. Used to scale parent time to local time, e.g. if rate i

2016-04-21 17:39:19 1827

原创 从iTunes获取App信息

http://itunes.apple.com/cn/lookup?id=(YourAppID) E.g:http://itunes.apple.com/cn/lookup?id=1062207166 初版发布后可以从iTunes获取id,后面的版本根据id请求版本信息,与当前版本对比,提示更新{ "resultCount": 1, "results": [ {

2016-03-24 14:04:50 2768

原创 使用Runtime+KVC改变TextField光标颜色

首先,是有简单方法可以改变TextField和TextView的光标颜色的textField.tintColor = someOtherColor;// 或[[UITextField appearance] setTintColor:someOtherColor]由于面试时被问到以上方法之外的方法,当时没想出来。 下面讨论的是使用Runtime + KVC方法改变光标的颜色1.首先,由于App

2016-02-26 18:09:53 476

原创 Xcode误点'Discard all changes'的恢复方法

参考 : StackOverFlow : How to undo xcode discard all changes if not committedXcode 的source control菜单中: 当你做了大量工作,而还没commit或者staged 时,如果点了Discard All Changes... 时,会让你的工作付之东流,选中后XCode也会提示我们这个操作是不可逆的:

2016-02-19 15:37:44 7979 1

原创 iOS与JS交互

1.使用JavaScriptCoreJavaScriptCore中常用的类型:JSContext :JSContext代表JS的执行环境,它的对象通过-evaluateScipt: 方法就可以执行JS代码。可以通过JSContext *jscontext = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptCo

2016-02-16 15:42:12 3457

原创 FMDB使用

类FMDB中有三个常用的类:FMDatabase 表示一个SQLite数据库,用来执行SQL语句。FMResultSet 表示FMDatase 执行查询语句后的结果。FMDatabaseQueue 当你需要在多线程中执行queries或updates时,需要使用这个类,它是线程安全的。创建数据库创建一个数据库FMDatabase 需要一个存储数据库的路径,这个路径可以是一下三种之一:一个系

2016-02-13 11:43:34 5942

原创 小技巧

1. 转移APPDelegate-application: didFinishLaunchingWithOptions:方法中的代码情景一:第三方初始化,且不需要上面方法中的option参数时,可以新建一个辅助类,将相关代码放到+ load 方法中 情景二:在程序启动后执行(didFinishLaunching完成后)+ (void)load{ // block 对observer的捕获

2016-02-01 18:01:06 449

原创 Quartz 2D & CoreAnimation

1. UIBezeierPath中的clockwise与CGContextAddArc中的clockwise相反?以下两句代码效果相同:UIBezierPath *path = [UIBezierPath bezierPathWithArcCenter:center radius:newDadius startAngle:startAngle endAngle:endAngle clockwise:

2016-01-18 18:13:48 364

原创 YYKit Demo

待整理 1. touchesbegin 判断点击,获取touch在控件上的location,判断view的bounds是否包含此location 2. 边框阴影, 3. layer.contentsRect控制图层的用来显示的范围 想像下contentsRect作为层内容的可视区域。内容的矩形区域(x,y,width,height)也是绑定到层的框架上的。contentRect是一个比例值,

2016-01-07 17:21:41 1606

原创 UIView的touch相关属性

1.exclusiveTouch@property(nonatomic,getter=isExclusiveTouch) BOOL exclusiveTouch// A Boolean value that indicates whether the receiver handles touch events exclusively.Setting this property to

2016-01-06 11:20:16 317

原创 App优化点

参考链接: 知乎: 如何加强iOS里的列表滚动时的顺畅感segmentFault文章 iOS 开发:绘制像素到屏幕ibireme大神博客:iOS 保持界面流畅的技巧 待抄录1.不透明label设置背景色,避免默认的透明使用不含alpha通道的图片2.离屏渲染如果你的APP有很多层,而且希望增加动画。GPU一般来说不得不重新合成所有的层在1秒60帧的速度下。当使用离屏渲染时,GPU需要

2015-12-16 17:08:12 466

转载 Xcode升级后插件失效及7.1菜单不显示Alcatraz的解决方法

转自:Coding Time,仅作个备份方便查找。先执行,这一步是把所有的插件都加上Xcode 7.1的DVTPlugInCompatibilityUUIDfind ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults writ

2015-11-13 16:08:50 1018

原创 多线程使用NSFileManager移动文件崩溃

#pragma mark - NSURLSessionDownloadDelegate- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTaskdidFinishDownloadingToURL:(NSURL *)location{...[[NSF

2015-10-18 12:14:36 2901

转载 iOS开发网络篇之文件下载、大文件下载、断点下载

文章源自简书。 iOS开发中经常会用到文件的下载与上传功能,今天咱们来分享一下文件下载的思路。文件上传下篇再说。小文件下载小文件可以是一张图片,或者一个文件,这里指在现行的网络状况下基本上不需要等待很久就能下载好的文件。这里以picjumbo里的一张图片为例子。NSData方式其实我们经常用的[NSData dataWithContentsOfURL] 就是一种文件下载方式,猜测这里面应该是发

2015-10-13 22:43:02 434

转载 强制转换横屏方法

强制转成横屏:if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) { SEL selector = NSSelectorFromString(@"setOrientation:"); NSInvocation *invocation = [NSInv

2015-10-12 10:27:35 1120

原创 LLDB常用指令

2016-02-25update bt命令debug模式下,程序crash后,进入lldb模式: 在终端输入bt 命令,Xcode会自动输出最后的一次调用堆栈: 里面有stop reason 等信息,从截图中可以看到[ViewController touchesBegin:withEvent:] 方法中出了问题。2015-12-09更新update1.对于一些经常po不出来的属性,可以先导入

2015-09-28 21:40:17 1338

转载 一些黑魔法摘录

1.向viewWillAppear等生命周期方法中添加代码 Glow技术团队博客Method Swizzling首先定义一个类别,添加将要 Swizzled 的方法:- (void)swizzled_viewDidAppear:(BOOL)animated { // 调用方法原来的实现 [self swizzled_viewDidAppear:animated]; // 想要添

2015-09-25 17:09:23 544

转载 隐藏导航栏底部直线

原文转自Kevin大神博客extension UINavigationBar { func hideBottomHairLine() { let navigationBarImageView = hairlineImageViewInNavigationBar(self) navigationBarImageView?.hidden = true }

2015-09-09 23:12:07 367

转载 Autolayout断点调试

文章转自:博客Autolayout BreakpointsAuto layout has become a crucial tool for iOS and OS X development. It makes creating layout for multiple screen sizes easy peasy. But sometimes it can drive you crazy, wit

2015-08-24 15:40:12 1576

原创 关于导航栏全屏横滑返回

仅作记录:思路源自为:J_雨大神博客。forkingdog开源小组作品:sunnyxx大神并且在百度知道APP中使用审核通过,地址:https://github.com/forkingdog/FDFullscreenPopGesture,使用简易零代码,只需将分类文件导入工程即可,支持iOS7+,支持带navigationBar与不带navigationBar的控制器间相互跳转,效果图: 原创者作

2015-08-15 23:39:26 1575 2

转载 点击状态栏时ScrollView自动滚动到初始位置失效的解决办法

此文章转载自 维尼小熊的简书相信细心的开发者都会发现scrollView自带一个功能,当用户点击顶部的状态栏时,scrollView的ContentOffset.y轴会自动滚动到初始位置,效果如图所示: 这个功能对用户来说非常实用,尤其是在scrollView(TableView, WebView, CollectionView一切继承scrollView的控件)展示的内容很多,当用户翻看很久以后

2015-08-15 23:14:30 808

原创 iOS应用内部切换语言,不跟随系统

基本思路:新建String文件,并配置 ②选中新建的String文件,右边栏localization选择make localized,初始只有english选项选择确定 ③项目多语言配置:Project->info->localizations下的加号,添加所需的支持的语言。 ④在对应语言文件中以”key”=”value”形式输入所需的字符串,并以分号结束。2.所生成的多语言文件

2015-08-10 00:26:33 482

原创 CocoaPods报错整理

2015-08-17 更新:问题2:Pods-resources.sh: Permission denied此问题常发生于在A电脑创建并导入pod的项目,在B电脑上编译发生: 解决:方法一:chmod a+x "/Users/shovon0203/Desktop/My Work/oDesk/momenTOGO/MomenTOGO_iPhone/Pods/Pods-resources.sh"方法二

2015-08-07 15:47:28 4570

原创 WebView改变网页文字大小、颜色,背景颜色

改变文字大小比例首先webview加载HTML字符串NSString *htmlString = @"someHtmlStrimg"self.webview.delegate = self;[self.webview loadHTMLString:_htmlString baseURL:nil];之后实现代理方法- (void)webViewDidFinishLoad:(UIWebView *)

2015-08-04 16:24:05 3844

转载 Tesseract OCR(光学字符识别)教程

转自:CocoaChina本文由CocoaChina翻译小组成员 Mr_cyz(博客)翻译自raywenderlich,作者:Lyndsey Scott 原文:Tesseract OCR Tutorial更新于2015/4/23:更新至Xcode6.3,swift1.2"起初我写这篇教程是在情人节,OCR可以带给你一整年的爱"。你之前肯定已经见过,O

2015-07-21 15:33:58 3295

转载 导航栏定制,带导航栏控制器scrollView位置偏移64

带导航栏控制器,ScrollView位置偏移64:nav的第一个子视图是scrollview的时候 系统才自动给scrollview加上64的inset,这偏移与第三方的下拉刷新冲突,解决冲突禁止系统偏移 vc.automaticallyadjustsScrollviewInsets =NO -nav.translucent = NO 也会把原点下移64 和 ios6一样 (一般不用这

2015-07-20 21:41:29 2940

空空如也

空空如也

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

TA关注的人

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