- 博客(29)
- 资源 (13)
- 收藏
- 关注
原创 Cocoa中常用绘制方法实例代码
//// CustomiseView.m// CustomiseViewDemo//// Created by Ben on 12-11-29.// Copyright (c) 2012年 Ben. All rights reserved.//#import "CustomiseView.h"#import "stdlib.h"@implementati
2012-11-29 22:59:37 2016
转载 Mac平台Retina高分屏开发技术分享
QQ for Mac V2.1版本支持了Retina,作为国内首个支持Retina高分屏的Mac OS X App,我们希望能够和大家分享一些在Retina支持方面的开发技术心得。欢迎Mac平台的开发朋友们与我们沟通交流。一、基本概念和思想1、和iOS的异同 在系统对高分屏的支持上,Mac OS和iOS基本上是一样的:都是两倍的Scale Factor,都是系统自动来完成这个Sca
2012-11-28 19:29:13 2285
转载 iOS多线程编程指南(附录)
本附录描述了Mac OS X和iOS上面一些关键的高级线程安全的框架。本附录的信息有可能会发生改变。Cocoa在Cocoa上面使用多线程的指南包括以下这些:不可改变的对象一般是线程安全的。一旦你创建了它们,你可以把这些对象在线程间安全的传递。另一方面,可变对象通常不是线程安全的。为了在多线程应用里面使用可变对象,应用必须适当的同步。关于更多信息,参阅”可变和不可变对比”。许多对
2012-11-25 00:24:04 674
转载 iOS多线程编程指南(四)线程同步
第四章 线程同步应用程序里面多个线程的存在引发了多个执行线程安全访问资源的潜在问题。两个线程同时修改同一资源有可能以意想不到的方式互相干扰。比如,一个线程可能覆盖其他线程改动的地方,或让应用程序进入一个未知的潜在无效状态。如果你幸运的话,受损的资源可能会导致明显的性能问题或崩溃,这样比较容易跟踪并修复它。然而如果你不走运,资源受损可能导致微妙的错误,这些错误不会立即显现出来,而是很久
2012-11-25 00:23:12 833
转载 iOS多线程编程指南(三)Run Loop
Run LoopsRun loops是线程相关的的基础框架的一部分。一个run loop就是一个事件处理的循环,用来不停的调度工作以及处理输入事件。使用run loop的目的是让你的线程在有工作的时候忙于工作,而没工作的时候处于休眠状态。Run loop的管理并不完全自动的。你仍然需要设计你的线程代码在合适的时候启动run loop并正确响应输入事件。Cocoa和Core Fundatio
2012-11-25 00:22:23 1142
转载 iOS多线程编程指南(二)线程管理
线程管理Mac OS X和iOS里面的每个进程都是有一个或多个线程构成,每个线程都代表一个代码的执行路径。每个应用程序启动时候都是一个线程,它执行程序的main函数。应用程序可以生成额外的线程,其中每个线程执行一个特定功能的代码。当应用程序生成一个新的线程的时候,该线程变成应用程序进程空间内的一个实体。每个线程都拥有它自己的执行堆栈,由内核调度独立的运行时间片。一个线程可以和其他线程或其他
2012-11-25 00:21:27 665
转载 iOS多线程编程指南(一)关于多线程编程
第一章 关于多线程编程多年来,计算机的最大性能主要受限于它的中心微处理器的速度。然而由于个别处理器已经开始达到它的瓶颈限制,芯片制造商开始转向多核设计,让计算机具有了同时执行多个任务的能力。尽管Mac OS X利用了这些核心优势,在任何时候可以执行系统相关的任务,但自己的应用程序也可以通过多线程方法利用这些优势。1.1 什么是多线程多线程是一个比较轻量级的方法来
2012-11-25 00:20:44 600
转载 iOS多线程编程指南-前言
线程是单个应用中可以并发执行多个代码路径的多种技术之一。虽然更新的技术如操作对象(Operation objects)和Grand Central Dispatch(GCD),提供一个更加现代化和高效率的基础设施来实现多核并发,但是Mac OS X和iOS也提供一套接口来创建和管理线程。本文档介绍了Mac OS X上面的可用线程包,并且演示如何使用它们。本文档还描述了在你的应用中多线程代码同步
2012-11-25 00:19:16 457
转载 CoreAnimation编程指南(十)KVC
CAAnimation和CALayer类扩展了NSKeyValueCoding协议,给键添加默认值,扩展了封装协议,支持CGPoint、CGRect、CGSize和CATransform3D关键路径。1.1 键-值编码兼容的容器类CALayer和CAAnimation都是键-值编码兼容的容器类,允许你修改属性键对应的值。即使键为“someKey”对应的属性没有被定义,你也可以给“some
2012-11-25 00:15:32 493
转载 CoreAnimation编程指南(九)图层布局
NSView提供了经典的“stuts and springs”模式,用于视图调整大小的时候把关联到它父图层的视图重新调整位置。图层支持该模式,而且Mac OS X上面的核心动画提供了一个更通用的布局管理器机制,允许开发者自己写他们自己的布局管理器。可以为图层定制一个布局管理器(它通常实现CALayoutManager协议),负责给图层的子图层提供布局功能。本章介绍了约束布局管理器和如何配置一系
2012-11-25 00:14:50 505
转载 CoreAnimation编程指南(八)事务
图层的每个改变都是事务的一部分。CATransaction是核心动画类,它负责成批的把多个图层树的修改作为一个原子更新到渲染树。本章介绍了核心动画支持的两种事务。隐式事务和显式事务。 1.1 隐式事务当图层树被没有获得事务的线程修改的时候将会自动创建隐式事务,当线程的运行循环(run-loop)执行下次迭代的时候将会自动提交事务。代码1的示例修改图层的opacity,zPosi
2012-11-25 00:14:14 603
转载 CoreAnimation编程指南(七)图层Action
图层的行为在以下情况发生的时候被触发:从图层树里面插入或者删除一个图层,图层的属性值被修改了,或者程序显式要求。通常情况下,行为触发器是动画显示的结果所在。 1.1 行为对象的角色一个行为对象是一个通过CAAction协议响应行为标识符的对象。行为标识符使用标准圆点分隔的关键路径来命名。图层负责把行为标识符映射到特定的行为对象。当一个特定标识符的行为对象被确定的时候,它会发送一个CAA
2012-11-25 00:13:23 481
转载 CoreAnimation编程指南(六)动画
动画是当今用户界面的关键因素。当使用核心动画的时候,动画是自动完成的。没有动画的循环和计数器。你的应用程序不负负责重绘,也不负责跟踪动画的当前状态。动画在独立线程里面自动执行,没有和你的应用程序交互。本章提供了对动画类的概览,和介绍如何创建隐式的和显式的动画。 1.1 动画类和时序核心动画提供了一套你可以在你应用程序里面使用的动画类的表现:CABasicAnimation提
2012-11-25 00:12:47 467
转载 CoreAnimation编程指南(五)图层内容
当我们使用Cocoa的视图的时候,我们必须继承NSView或者UIView并且重载函数drawRect:来显示任何内容。但是CALayer实例可以直接使用,而无需继承子类。因为CALayer是一个键-值编码兼容的容器类,你可以在实例里面存储任意值,所以子类实例化完全可以避免。1.1 给CALayer提供内容你可以通过以下任何一种方法指定CALayer实例的内容:使用包含图片内容的C
2012-11-25 00:12:08 533
转载 CoreAnimation编程指南(四)图层树结构
图层不但给自己提供可视化的内容和管理动画,而且充当了其他图层的容器类,构建图层层次结构。本章介绍了图层层次结构,以及如何操纵该图层层次结构。 1.1 什么是图层树的层次结构图层树是核心动画里面类似Cocoa视图的层次结构。比如一个NSView或者UIView的实例拥有父视图(superview)和子视图(subview),一个核心动画的图层拥有父图层(suplayer)和子图层(s
2012-11-25 00:11:24 575
转载 CoreAnimation编程指南(三)几何变换
本章介绍图层的几何组成部分,及他们之间的相互关,同时介绍如何变换矩阵可以产生复杂的视觉效果。 1.1 图层的坐标系图层的坐标系在不同平台上面具有差异性。在iOS系统中,默认的坐标系统原点在图层的中心左上角地方,原点向右和向下为正值。在Mac OS X系统中,默认的坐标系原点在图层的中心左下角地方,原点向右和向上为正值。坐标系的所有值都是浮点类型。你在任何平台上面创建的图层都采用该平台默
2012-11-25 00:10:43 477
转载 CoreAnimation编程指南(二)渲染架构
虽然核心动画的图层和 Cocoa的视图在很大程度上没有一定的相似性,但是他们两者最大的区别是,图层不会直接渲染到屏幕上。 在模型-视图-控制器(model-view-controller)概念里面NSView和UIView是典型的视图部分,但是在核心动画里面图层是模型部分。图层封装了几何、时间、可视化属性,同时它提供了图层现实的内容,但是实际显示的过程则不是由它来完成。每个可见的图层
2012-11-25 00:09:58 494
转载 CoreAnimation编程指南(一)概念
第一章 核心动画概念核心动画是一套包含图形绘制,投影,动画的Objective–C类集合。它通过开发人员所熟悉的应用程序套件和Cocoa Touch视图架构的抽象分层模式,同时使用先进的合作效果提供了一套流畅的动画。动态的动画接口很难创建,但是核心动画通过提供如下接口使这些创建起来变得更加简单:简单易用的高性能混合编程模型。 类似视图一样,你可以通过使用图层来创建复杂的接
2012-11-25 00:09:12 559
转载 CGAffineTransform相关函数
CoreGraphics.hCGAffineTransform rotation = CGAffineTransformMakeRotation(M_PI_2); [xxx setTransform:rotation]; 呵呵就这么简单的两行代码就可以实现了!顺便记录一些常量,以后用的着!#define M_E 2.718281828459045235360287471
2012-11-25 00:06:43 471
转载 volatile关键字
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。 用volatile关键字声明的变量i每一次被访问时,执行部件都会从i相应的内存单元中取出i的值。 没有用volatile关键字声明的变量i在被访问的时候可能直接从cpu的寄存器中取值(因为之前i被访问过,也就是说之前就从内存中取出i的值保存到某个寄存器中),之所以直接从寄存器中取
2012-11-25 00:01:11 356
转载 OSATOMIC.h的介绍 OSATOMIC与synchronized 加锁的对比 iOS开发 多线程编程 .
这段话是从网上copy过来的,总结了一下原子操作的作用。但是文中提到的osbase.h文件找不到。可能是因为版本升级我的lib中没有这个文件。iOS平台下的原子操作函数都以OSAtomic开头,使用时需要包含头文件。不同线程如果通过原子操作函数对同一变量进行操作,可以保证一个线程的操作不会影响到其他线程内对此变量的操作,因为这些操作都是原子式的。因为原子操作只能对内置类型进行操作,所以原子操作
2012-11-22 19:17:55 798
转载 NSInvocation的使用
http://blog.iosxcode4.com/?p=125在 iOS中可以直接调用 某个对象的消息 方式有2种一种是performSelector:withObject:再一种就是NSInvocation第一种方式比较简单,能完成简单的调用。但是对于>2个的参数或者有返回值的处理,那就需要做些额外工作才能搞定。那么在这种情况下,我们就可以使用NSInvocation来进行这些
2012-11-22 19:15:17 469
转载 Cocoa框架
是什么因素使一个程序成为Cocoa程序呢?肯定不是编程语言,因为在Cocoa开发中您可以使用各种语言;也不是开发工具,因为您在命令行上就可以创建Cocoa程序(虽然那会使开发过程变得复杂,且需要消耗大量时间)。那么,所有Cocoa程序的共同点是什么?是什么使它们变得与众不同?答案是这些程序都是由一些对象组成,而这些对象最终都是从NSObject这个根类继承下来的;还有,这些程序都是基于Object
2012-11-20 09:09:26 1120
转载 Cocoa自定义View
程序中所有的可视对象要么是window,要么是view.在这一章中,你将创建一个NSView的子类. 随着时间的推移,你一般会需要创建自定义的view来完成自定义画图和事件响应.即使你没有打算这样做,你也应该通过学习创建view类来了解cocoa的内部工作机制window是NSWindow的对象.每个window都会有多个views,每个view描述window中的一个矩形区域. view负责
2012-11-18 13:02:23 2556
转载 Cocoa 图形开发基础
Cocoa图形介绍在本系列前一阶段,我主要讨论了如何使用Cocoa来编写用户界面。我还介绍了面向对象编程(OOP)的基本概念,以及在程序中最经常使用的Cocoa类。今天,我们开始把重点转向Cocoa的画图和二维图形处理上。我们今天会做一个小小的起步,讨论如何在窗口中绘制简单的图形在以后的章节中,我将会涉及绘制更复杂的图形,实现动画,以及处理原始图象数据。在此之前,让我们从最基本开始
2012-11-18 12:58:00 1396
原创 Mac OS、IOS中绘图总结
Paths中的几个重要元素Pointsvoid CGContextMoveToPoint ( CGContextRef c, CGFloat x, CGFloat y);指定一个点成为current pointQuartz会跟踪current point一般执行完一个相关函数后,current point都会相应的改变.Lines相关的几个函数
2012-11-17 18:23:34 2192
原创 NSTableView中设置selectedRow的高亮颜色
有两种方法:第一种是继承NSCell: 第二种是继承NSTableView。在tableView中,使用[plain] view plaincopyprint?[myView setUsesAlternatingRowBackgroundColors:NO];//取消行与行之间蓝白交替显示的背景 [my
2012-11-06 21:29:19 2784
原创 NSFont常用字体
1NSFont *font= [NSFont systemFontOfSize:[NSFont smallSystemFontSize]]; 2// NSFont *font = [NSFont fontWithName:@"Helvetica" size:8];3// NSFont *font = [NSFont boldSystemFontOfSiz
2012-11-03 11:11:40 4434
原创 Mac中各种控件重绘
/******************************************************************** Filename: ControlWithScheme.m Date: 14-09-2012 Author: Ben Description: Work-arround for 10.5 Revisions: Ben: 14-
2012-11-02 18:25:59 2382
Objective C经典教程
2012-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人