自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 认识Sketchup

–改自从零开始学APP设计利器SKETCH(一)矢量图像,也称为面向对象的图像或绘图图像,在数学上定义为一系列由线连接的点。矢量文件中的图形元素称为对象。每个对象都是一个自成一体的实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性。切图是指将设计稿切成便于制作成页面的图片,并完成html+css布局的静态页面。切图的目的:第一个是让网页稿有了交互性,实现你平时看到的各种各样的功能。切,代表前端!Sk

2016-03-26 11:53:49 837

转载 iOS逆向工程介绍

摘自<iOS逆向工程>软件的逆向工程指的是通过分析一个程序或系统的功能、结构或行为,将它的技术实现或设计细节推导出来的过程。软件逆向工程可以看做系统分析和代码分析两个阶段的有机结合。iOS软件逆向工程用到的工具:1.检测工具:Reveal、tcpdump、libNotifyWatch、PonyDebugger2.开发工具Theos、Xcode3.反编译器IDA4.调试器GDB

2016-03-26 01:17:40 534

翻译 借助kitabu来使用markdown制作PDF电子书

Kitabu是一个Ruby编写的使用markdown语法制作电子书的框架。使用Prince PDF制作器,你能够获得高质量的PDF。它也支持Epub、Mobi、Text和HTML格式。特点:使用markdown书写支持书的布局语法高亮产生HTML、PDF、e-Pub和文本文件从章节标题自动产生内容列表安装:为了安装Kitabu,你需要安装Ruby 2.0+。安装好Ruby 2.0+后,运

2016-01-11 09:22:05 1474

原创 尝试Swift包管理工具

每种语言基本上都官方的包管理工具(package manager),比如nodeJS的npm,随着Swift的开源,官方也退出了代码管理工具,即SPM(Swift Package Manager),下面来尝试下这个:Swift包管理器的官方github地址安装:如果想要确认是否已经安装了包管理器,输入以下的命令行:swift build --help如果输出的是关于用法,那么证明安装好了,否则会看到

2015-12-25 10:46:37 2234

翻译 撤销Undo

“撤销”功能在OS X上很常见,想法就是:假如用户及时意识到犯的错误,可以回退错误的动作。通常,Mac应用会维持内部撤销动作(undoable actions)的栈,选择Edit->Undo或Command-Z来回退该栈顶部的动作,当然,动作也可以重做(redo)。一些iOS应用,可能也需要有限的撤销功能,当然,这并不难实现。一些内置的视图,特别是涉及到文本输入(text entry)的,比如UIT

2015-12-22 22:05:36 1420

翻译 Text

出现在应用界面上的文本往往以NSString或者NSAttributedString的形式存在,NSAttributedString为NSString添加了文本样式,包括不同的字符样式和段落级别的特点,像对齐(alignment)、行距(line spacing)和边距(margin)为了让你的NSString或者NSAttributedString出现在界面上,你可以将它绘制到图形上下文(grap

2015-12-20 16:40:45 1172

翻译 遮罩、模糊效果和动画

Masks,Blurs and Animation一.遮罩(Mask) 裁剪将绘图限定在路径的区域内,如下面示例:- (UIImage *)getImage:(CGSize)targetSize{ UIGraphicsBeginImageContextWithOptions(targetSize, NO, 0.0); CGRect targetRect =[self SizeMa

2015-12-18 15:11:28 654

翻译 路径基础<1>

贝塞尔路径(Bezier path)是iOS绘图工具中最重要的部分,它允许你创建和改变形状、建立裁剪路径、定义动画路径等等。无论你构建自定义视图,添加像PS那样的特效,或者执行类似画线、画圆的普通任务,UIBezierPath类会让你的开发更加容易和强大。一.类便利方法UIBezierPath类方法用来构建矩形(Rectangle)、椭圆(Oval)、圆角矩形(Rounded Rectangle)和

2015-12-18 09:24:20 667

原创 Swift初始化方法

Swift中有两类初始化方法:designated(指定)和convenience(便利)初始化方法。convenience初始化方法必须调用同一个类(self)中的designated初始化。designated构造器:init(parameters){}convenience构造器convenience init(parameters){}特别要注意构造器的继承问题首先明确的是:子类

2015-12-12 20:26:19 1392

原创 Swift中的if语句使用where

在if里使用where语句是对语句进行约束。var optionName: String? = "Ricky"if let name = optionName where name.hasPrefix("R"){ print("\(name)")}if语句执行的是把optionName的值赋予常亮name,如果没有值将为false退出if,而在这个语句里,where执行的是判断可选变量o

2015-12-12 11:57:52 2277

原创 MBProgressHUD源码分析

MBProgressHUD是Objective-C写的第三方库,用来作为进度指示器使用,原版Objective-C实现,当然,也有Swift实现,本文是依据原作者的Objective-C源码来分析的。MBProgressHUD使用时本质是一个尺寸为屏幕尺寸(显示时能完全遮住其它视图)的UIView,而最好将它添加到窗口上或者窗口的根视图控制器的根视图上。MBProgressHUD上主要由三个子视图:

2015-12-11 21:44:41 528

原创 Realm学习<1>

Realm,为移动设备而生,替代SQLite和Core Data。为你省下数周的时间和数千行的代码,帮你创造出更棒的用户体验。(这是摘自官网的原话,官网文档有中文的版本,开发团队中貌似有一个中国人)Realm的特点官网罗列的很清楚,比如:Realm文件可以跨平台共享,让Java、Swift和Objective-C使用相同的抽象模型访问,从而让您在各个平台上使用尽可能相似的业务逻辑。大家可以到官网上

2015-12-11 14:01:15 410

原创 Objective-C的成员变量、属性与带下划线属性的总结

成员变量与属性是不同的,先看如下示例代码:User.h文件#import <Foundation/Foundation.h>@interface User : NSObject{ // 成员变量 NSString *name; NSInteger age;//typedef long NSInteger;}// 属性@property(nonatomic,copy)NS

2015-12-09 16:54:38 5381

原创 Objective-C之谓词NSPredicate

NSPredicate用于定义一个逻辑条件,通过该条件可执行搜索或内存中的过滤操作。一.谓词的定义谓词是由NSPredicate对象来代表,在实际编程中会直接使用NSPredicate的predicateWithFormat:方法,以一个谓词字符串为参数来创建NSPredicate对象。//无占位符NSPredicate *pre = [NSPredicate predicateWithForma

2015-12-09 11:53:08 455

原创 对象复制

一.copy与mutablecopy方法copy方法总是返回对象的不可修改的副本;mutablecopy方法总是返回该对象可修改的副本。当程序对复制的副本进行修改时,原对象不会受到影响。 NSString *book = @"Hello"; NSMutableString *bookMutable = [book mutableCopy]; [bookMutable replace

2015-12-08 23:18:54 381

原创 重温C语言之预处理命令

预处理命令:以“#”符号开头的编译指令(预处理命令属于C语言编译器)预处理的主要作用: 1. 将源文件中以”#include”格式包含的文件复制到编译的源文件中 2. 用实际值替换使用”#define”定义的字符串 3. 根据”#if”后面的条件决定需要编译的代码预处理命令: 1. “#define”:宏定义 2. “#include”:将另一源文件嵌入到带有”#include”的源文件中

2015-12-08 14:25:05 388

原创 关于iOS父(容器)视图控制器管理子视图控制器的根视图的思考总结

刚接触iOS开发的时候,手机应用上的一些界面老是无法弄清楚实现原理,后来通过阅读一些源码,逐渐了解了某些界面的一些实现方法。这里谈到的是父视图控制器管理子视图控制器视图的相关知识,归纳了几种情况,如果大家发现新的或者有好的解决方案,请联系我,我会很快更新与大家分享:1.侧栏:2.滚动切换子视图控制器:3.自定义TabbarController:4.同一界面放置两个tableview:以上可能都要涉及

2015-12-07 22:54:30 841

转载 Xcode插件

Xcode所在的文件目录:~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins开发流程:<1>原始开发一.配置1.新建Xcode项目,选择Framework & Library,接着就是选择Bundle类型,扩展名为xcplugin2.在工程中的info.plist文件中配置,XCPluginHasUI:布尔类型,表明插件是否有

2015-12-06 18:02:43 437

翻译 iOS网络底层之CFNetwok

苹果网络底层的API是CFNetwork API。描述CFNetwork最简单的方式是:它是苹果对BSD Socket API的特定扩展,CFNetwok 栈是基于和依赖BSD Socket API的。我们也会使用NSHost和系统配置框架来获取网络地址信息和检查网络状态。相对于CFNetwork,BSD Socket最大的优势是兼容其他Unix系统,但是,如果你的应用是苹果设备专用的,推荐使用CF

2015-12-05 00:47:35 763

翻译 iOS网络底层之BSD Socket Libra1ry<2>

注:Echo server(回显服务器):提供回显服务的程序,就是收到什么,然后就发送什么的程序。1.创建一个echo server(回显服务器)

2015-12-03 23:19:49 449

翻译 iOS网络底层之BSD Socket Libra1ry<1>

注: POSIX :表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标准BSD :(Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统Byte order:字节顺序,指的是数据存储到内存中的顺序,如果要让两台使用不同字节

2015-12-03 23:02:46 924

原创 iOS中的文件I/O

iOS应用程序只能在系统为该应用所分配的文件区域下读/写文件,这个文件区域就被称为该应用程序的沙盒。这个文件区域的文件结构如下:Documents:除了基于NSUserDefaults的首选项之外,应用程序的数据、文件都保存在该目录下Library:基于NSUserDefaults的首选项参数保存在Library/Preferencestmp:该目录供应用程序存储临时文件,当iOS执行同步时,

2015-11-29 16:14:14 565

原创 Nodejs开发之Command Line Interface 命令行接口

首先,我们会使用Node内置的API来学习命令行基础知识;然后我们会使用commander模块来扩展基础知识。一.命令行参数命令行参数是一种基本的方式,来为计算机程序提供输入。在Node应用中,命令行参数可以通过process这个全局对象的argv属性来获得(数组类型)。下面的代码展示了如何使用forEach()这个方法来遍历argv。process.argv.forEach(function(ar

2015-11-26 22:29:50 3003

翻译 iPad开发之Popover

首先了解两个控制器:UIPopoverPresentationController:继承自UIPresentationControllerUIPresentationController:继承自NSObject,它为被展示的视图(presented view controller)提供了视图和转场管理。可以通过被展示的视图的presentationController属性来获取它。popove

2015-11-25 15:43:23 401

翻译 iPad开发之Split Views

一个Split View在iPad上通常是作为两个视图的结合体展示的,底层是用UISplitViewController来实现的;两个视图是它的子视图控制器的主视图。子视图控制器是split view控制器的viewControllers。UISplitViewController的子视图控制器都通过spliteViewController属性来引用UISplitViewController。spl

2015-11-24 22:07:09 1070

翻译 使用运行时APIs

一.使用可加载的Bundles来扩展程序1.创建一个可加载的Bundle:使用Xcode新建一个工程,在OS X下选择Framework & Library,然后选择Bundle,如图:为工程取个名称,创建:我们在工程中创建一个类,并编写一个-方法:-(void)greetWithName:(NSString*)name;,代码如下Greet.h文件代码:#import <Foundation/Fo

2015-11-21 10:21:30 371

翻译 运行时架构(Runtime Architecture)

运行时系统是Objective-C平台的关键元素,它实现了语言的动态特点和面向对象的能力。它的结构能让你开发代码时不用接触到运行时的内部,但是提供了一个公共的API,让你写代码直接激活运行时服务。下面,我们来探索下运行时系统的架构和设计以及它如何实现动态特点的。你将学习运行时的主要组件,关键的实现细节,然后研究下你的代码在编译和运行期间是如何与运行时进行交互的。运行时组件(Runtime Compo

2015-11-19 13:22:08 2076

翻译 运行时系统(Runtime System)

Objective-C有大量的动态(dynamic)特点,这些功能和行为是在运行时而非编译或链接时表现出来的。这些特点是由Objective-C”运行时”系统实现的,理解Objective-C”运行时”的工作方式有助于你理解这门编程语言,以及你的程序是如何运行的。1.动态特点(Dynamic Features):Objective-C在”运行时”与其它编程语言在编译和链接期间一样,执行类型确定和方法

2015-11-18 23:04:26 2672

原创 iOS视图控制器的整体概述

视图控制器的继承关系--NSObject----UIPresentationController(代表被展示的视图控制器presented viewController)------UIPopoverPresentationController--NSObject----UIResponder------UIViewController--------UITabBarController

2015-11-18 09:42:10 335

原创 Swift中枚举enum讲解

需要定义一组具有相关性的数据时,往往会使用到枚举类型,枚举类型可由成员、属性、下标脚本和方法组成;枚举类型和类的构成基本相似,不同在于枚举类型比类多了成员。枚举类型可以分为两种:没有指定数据类型(任意类型的枚举类型)和指定数据类型;定义如下指定数据类型enum Person:String{}没有指定数据类型enum Person{}一.定义枚举类型的成员case关键字不能省略,如果在一个

2015-11-17 21:35:19 390

原创 创建下拉(Pull-Down)菜单

下拉菜单式是与OS X程序交互的标准方式。默认,Xcode会为每个OS X工程创建以下的下拉菜单标题:FileEditFormatViewWindowsHelp如图: 在菜单栏上添加新的下拉菜单标题:从对象库中选择Application Menu Item,将其拖到菜单栏(Menu bar)或者Document Outline,如图:在下拉菜单中添加新的命令:为了添加新的命令到下拉

2015-11-17 09:06:08 3115

原创 简化用户界面设计

为了创建具有适配能力的用户界面,Xcode提供了约束来固定用户界面子项四边与窗口四边或者其它子项四边的距离,这一章,你将学习更多关于约束和storyboard的知识。一.使用Stack View如果你的用户界面包含多个子项,对每个子项设置约束会导致很乱,为了解决这个问题,Xcode提供了一个特点,叫做Stack View,stack view背后的想法是一组用户界面子项需要放在一起。并不是单独为每一

2015-11-17 00:10:28 787

原创 使用Alert和Panel

一.使用Alert一个alert基于NSAlert类,最简单创建一个alert的代码:var myAlert=NSAlert()myAlert.runModal()为了自定义一个alert,可以修改下面的属性:messageTextinformativeTexticonalertStyleshowsSuppressionButtonsuppressionButton示例代码:AppD

2015-11-16 23:57:17 725

原创 Label,Text Field和Combo Box来处理文本

一.使用Text Fieldtext field可以接受字符串和数字,可以通过下面的属性来获取值:intValue:如果是字符串,则为0,如果浮点数,则去掉小数部分floatValue或doubleValue:如果是字符串,则为0.0stringValue:除了标准的text field,Xcode也提供其它几种:Text Field with Number FormatterSecu

2015-11-16 22:46:25 1194 1

原创 利用Radio Button、Check Box、Date Picker和Slider作出选择

一.使用Check Box:Check Box是基于NSButton类,允许用户选择多个选项,有三个最重要的属性:Title:Check Box附近的文本(未被选中时候的文本)State:决定Check Box是否被选中(选中为1;未选中为0)Alternate:Check Box被选中时候的文本示例代码:AppDelegate.swift文件import Cocoa@NSApplicati

2015-11-16 22:00:43 1991

原创 利用按钮来执行命令

在Cocoa框架中,所有的按钮都是基于NSButton,系统提供了多钟按钮,下面显示部分: 将多个用户界面子项与一个IBAction连接起来:首先,利用一个子项创建一个IBAction方法,然后选中另一个子项,按住Ctrl键,将鼠标拖到刚刚创建的IBAction方法上,直到整个方法高亮再松开即可:代码如下:AppDelegate.swift代码import Cocoa@NSApplicationM

2015-11-16 19:44:19 736

原创 视图和Storyboard

一.创建用户界面:.xib文件.storyboard文件二.定义主用户界面:三.展示多个.xib文件创建一个视图(或者说窗口)控制器(NSWindowController)和.xib文件;创建视图控制器实例对象;使用showWindow(sender: AnyObject?)和close()方法来打开和关闭.xib文件AppDelegate.swift文件import Cocoa@

2015-11-16 18:52:42 1002

原创 Mac编程之用户界面

Xcode提供两种方式来保存用户界面:.xib文件.storyboard文件一个.xib文件通常包含一个单独的窗口(window)或者用户界面上的一个视图(view)。.storyboard文件包含一个或多个视图或者segues,这里的视图代表一个窗口,segue定义了视图间的转场。用户界面有三个功能:向用户展示信息接收来自用户的数据允许用户控制程序Xcode中的对象库(Object

2015-11-15 22:14:23 3231

原创 iOS缓存机制

使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求。一.内存缓存将内容缓存到内存中,内存缓存我们可以使用sdk中的NSURLCache类。二.磁盘缓存将数据缓存到本地磁盘.三.缓存机制功能需求(注意缓存过期时间):1、可以将数据缓存到内存或者本地磁盘。 2、可以判断一个资源是否已经被缓存。如果已

2015-11-14 10:01:26 524

原创 iOS之Drawing<2>

图形上下文(Graphics Contexts)我们可以使用代码来创建图画,图形上下文是可以绘画的地方。这里推荐两种获取图形上下文的方法:创建一个图片上下文(image context) 函数UIGraphicsBeginImageContextWithOptions用来创建一个图形上下文,接着你可以在上面绘制来产生图片,然后通过UIGraphicsGetImageFromCurrentImag

2015-11-12 21:49:33 321

空空如也

空空如也

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

TA关注的人

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