自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 iOS中的文件I/O

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

2015-11-29 16:14:14 595

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

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

2015-11-26 22:29:50 3059

翻译 iPad开发之Popover

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

2015-11-25 15:43:23 436

翻译 iPad开发之Split Views

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

2015-11-24 22:07:09 1124

翻译 使用运行时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 404

翻译 运行时架构(Runtime Architecture)

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

2015-11-19 13:22:08 2187

翻译 运行时系统(Runtime System)

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

2015-11-18 23:04:26 2762

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

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

2015-11-18 09:42:10 351

原创 Swift中枚举enum讲解

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

2015-11-17 21:35:19 408

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

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

2015-11-17 09:06:08 3239

原创 简化用户界面设计

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

2015-11-17 00:10:28 830

原创 使用Alert和Panel

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

2015-11-16 23:57:17 757

原创 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 1224 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 2027

原创 利用按钮来执行命令

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

2015-11-16 19:44:19 765

原创 视图和Storyboard

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

2015-11-16 18:52:42 1021

原创 Mac编程之用户界面

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

2015-11-15 22:14:23 3262

原创 iOS缓存机制

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

2015-11-14 10:01:26 549

原创 iOS之Drawing<2>

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

2015-11-12 21:49:33 340

原创 iOS之Drawing<1>

在iOS应用中,用户看到的一切都是视图(UIView),视图是有内容(content)的,包含图画。一个空白的视图可以任意绘画,你的代码决定视图绘制什么内容。尺寸可变的图片(重要):界面的某些地方有时候需要一张尺寸可变的图片。比如,有时候,你想要用一张图片以铺瓷砖或者拉伸的方式来填充背景。为了制作一张尺寸可变的图片,利用一张普通的图片,调用它的resizableImageWithCapInsets(

2015-11-12 19:25:53 428

原创 Transform(变换)

视图的transform属性改变了视图绘制的方式,例如,它可能会改变视图的可视尺寸和方向(注意:是可视的,即人眼看到的),但是并不影响视图的bounds和center。一个变换过的(transformed)视图依然会保持正确的表现:例如,一个旋转过的按钮依然可以在可视区域内点击。transform的类型是CGAffineTransform,它是一个结构体。系统提供了方法来创建三种基本类型的变换:旋转

2015-11-12 16:17:20 697

翻译 iOS视图控制器<2>

Container View Controllers 容器视图控制器UITabBarController、UINavigationController、UIPageViewController都是内置的父视图控制器:你将子视图控制器传给它们,它们会将子视图控制器的视图放进它们自己的视图中。在iOS5中,苹果引入了一种连贯的方式来让你创建自己的父视图控制器,可以有效地管理子视图控制器,把子视图控制器的

2015-11-10 20:44:25 380

翻译 iOS视图控制器<1>

在iOS中,动态界面是通过视图控制器来管理的,视图控制器是UIViewController的实例。一个视图控制器管理一个单独的视图,当然,这个视图还有子视图。视图控制器的view属性指向它管理的视图,即视图控制器的主视图(main view)。视图控制器的主视图并不拥有一个直接指向管理它的视图控制器的指针,但是视图控制器是UIResponder,在响应者链中刚好处在它的视图之上,所以视图控制器就是视

2015-11-10 18:24:54 440

转载 UIViewController的表现方式

一.UISplitViewController分割视图控制器在用Regular和Compact统一了IB界面设计之后,UISplitViewController可以同时在iPhone和iPad上使用。在Rugular的宽度时,它保持原来的特性,在DetailViewController中显示内容。而在Compact中,我们第一想法是以push的表现形式展示。二.UIPresentationContr

2015-11-09 21:43:12 345

转载 Size Classes

iOS8应用在界面设计时,使用:Size ClassesiOS6引入了Auto Layout,使用约束进行布局对Auto Layout的评价:只是一个根据约束来布局的方案,而在对应不同设备的具体情况下的体验上还有欠缺。一个最明显的问题是它不能根据设备类型来确定不同的交互体验。很多时候你还是需要判断设备是iPhone还是iPad,以及现在的设备方向是竖直的还是水平来做出判断。所以在iOS8里,苹果引入

2015-11-09 19:32:52 365

原创 浅谈视图的frame、bounds和center属性

Xcode中的文档描述如下:public var frame: CGRect:public var bounds: CGRect:默认下,bounds是zero origin,frame size。public var center: CGPoint:center是frame的中心点。视图的frame属性,类型是CGRect,代表了在父视图坐标系统下的矩形的位置、尺寸。如果你想为一个视图设

2015-11-08 20:41:38 961

原创 iOS远程推送

参考:SWIFT推送之本地推送(UILocalNotification)手把手教你配置苹果APNS推送服务iOS远程推送通知由远程服务器上的程序(可由任意语言编写)发送至APNs,再由APNs把消息推送至设备上对应的程序。iOS远程推送通知的过程:以上图示讲解:1.Provider(服务器)程序把要发送的通知、目标iPhone的device token(相当于该设备的唯一标识)打包,发送给APNs

2015-11-07 02:31:01 651

原创 iOS本地通知

本地通知由本应用负责调用,只能从当前设备上得iOS发出。本地通知适用于基于时间的程序,包括简单的日历程序或者to-do列表类型的应用程序。本地通知是一个UILocalNotification,它有如下属性:var fireDate: NSDate?:指定通知在什么时间出发var repeatInterval: NSCalendarUnit:设置本地通知重复发送的时间间隔var alertBod

2015-11-06 18:35:25 405

转载 LayoutSubviews方法

摘自:解析LayoutSubviewsinit初始化不会触发layoutSubviewsaddSubview会触发layoutSubviews设置view的Frame会触发layoutSubviews,当然前提是frame的值设置前后发生了变化滚动一个UIScrollView会触发layoutSubviews旋转Screen会触发父UIView上的layoutSubviews事件改变一个

2015-11-05 13:53:24 347

原创 NSNotificationCenter观察者模式

NSNotificationCenter实现了观察者模式,允许应用的不同对象间以松耦合的方式进行通信。NSNotificationCenter相当于一个消息中心,首先由Observer组件向NSNotificationCenter进行注册—表明该Observer组件对哪些NSNotification感兴趣。当Poster向NSNotificationCenter发送NSNotification之后,

2015-11-04 20:22:54 587

原创 ARC下OC对象和CF对象之间的架桥

Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。Core Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但Foundation框架提供Objective-C接口。如果您将Foundation对象和Core Foundation类型掺杂使用,则可利用两个框架

2015-11-04 20:04:59 539

空空如也

空空如也

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

TA关注的人

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