20
2011

将图片保存到照片相册中

如何将图片保存到iOS自带的Photo Album中呢?

imageimage

这是调用api生成的当前绘制的图形。

代码很简单:

UIImageWriteToSavedPhotosAlbum(drawImage.image, nil, nil, nil);

这里drawImage是一个UIImageView。

Continue Reading »

日志引用

18
2011

最简单的画线功能

如何在iOS屏幕上画出一条线来?这是一切复杂画线的基础。之前在计算一个点是否在一个区域中中已经有使用CGPath的示例。那是用来标定区域的,这里使用CGPath画线。

image

示例非常简单。

Continue Reading »

18
2011

NSUserDefaults保存应用中的数据

在界面中显示文本内容中写入UITextView的文本,如何保存?

可以使用NSUserDefaults:

NSUserDefaults *textData;

该实例实际上是NSDirectory,保存键值对。在使用中,首先检查是否有该键值对,如果有赋值给TextView的text属性。

- (void) initTextView{
    textData=[NSUserDefaults standardUserDefaults];
   
    textview=[[UITextView alloc] initWithFrame:CGRectMake(550, 140, 400, 300)];
    textview.backgroundColor = [UIColor colorWithWhite:0 alpha:0];
    textview.textColor = [UIColor blackColor];
    textview.font = [UIFont fontWithName:@"Arial" size:24];
    textview.editable = YES;
    textview.scrollEnabled = YES;
    textview.delegate=self;
    if ([textData objectForKey:@"page12.text.data"]!=nil) {
        textview.text=[textData objectForKey:@"page12.text.data"];
    }
    [self addSubview:textview];
}

Continue Reading »

18
2011

在界面中显示文本内容

iOS有单行和多行显示文本的控件对象:

  • UITextField:简单的单行
  • UITextView:可滚屏的多行

在这里使用的是多行文本,即UITextView。

image

Continue Reading »

17
2011

使用贝塞尔曲线实现关键帧动画

贝塞尔曲线,可以通过三个点,来确定一条平滑的曲线。在计算机图形学应该有讲。是图形开发中的重要工具。

image

实现的是一个图形做圆周运动。不过不是简单的关键帧动画那样,是计算出了很多点,当然还是用的关键帧动画,即使用CAKeyframeAnimation。有了贝塞尔曲线的支持,可以赋值给CAKeyframeAnimation 贝塞尔曲线的Path引用。

Continue Reading »

17
2011

计算一个点是否在一个区域中

iOS有时候需要判断是否touch到某个图的区域中。这里做了个小示例,通过CGPath创建一个区域,区域是由路径做两点间线段并闭合成的区域,比如这里创建了一个简单的矩形。然后就可以用CGPath相关函数判断点是否在区域里了。

- (void)viewDidLoad {
    [super viewDidLoad];
   
    CGMutablePathRef pathRef=CGPathCreateMutable();
    CGPathMoveToPoint(pathRef, NULL, 4, 4);
    CGPathAddLineToPoint(pathRef, NULL, 4, 8);
    CGPathAddLineToPoint(pathRef, NULL, 10, 4);
    CGPathAddLineToPoint(pathRef, NULL, 4, 4);
    CGPathCloseSubpath(pathRef);
   
    CGPoint point=CGPointMake(5,7);
    CGPoint outPoint=CGPointMake(5,10);
   
    if (CGPathContainsPoint(pathRef, NULL, point, NO)) {
        NSLog(@"point in path!");
    }
   
    if (!CGPathContainsPoint(pathRef, NULL, outPoint, NO)) {
        NSLog(@"outPoint out path!");
    }

PDF格式創作    发送文章为PDF   
17
2011

Xcode项目使用SVN需要的设置

参考了:http://iphonedevelopertips.com/xcode/how-to-fix-subversion-in-xcode-3.html

需要在~/.subversion/config文件中设置一下。

找到:

# global-ignores

在下面添加:

global-ignores = build *~.nib *.so *.pbxuser *.mode* *.perspective*

因为build目录是不需要提交的,是构建出来的文件。另外,还有后缀是mode1v3和pbxuser等文件,这是Xcode用户文件。另外一些也是临时文件或者构建出来的文件。

Continue Reading »

17
2011

Xcode中使用SVN需要注意的问题

Xcode的SVN功能,和Eclipse中的subclipse或者windows下的tortoiseSVN比较起来功能还差很多。

我是索性不用的,直接用命令行。我看有的朋友是用subclipse,其实也挺好,不过,为了使用SVN功能要单独开一个耗费资源的Eclipse。

但是,不论使用什么SVN工具,都会遇到Xcode固有的问题,即project.pbxproj文件的提交冲突问题。

project.pbxproj文件里面包含了构建过程所需的所有文件,如果你在项目目录下增加了新文件,比如没有通过Xcode,该文件就不在project.pbxproj文件中,就不会生成到app中。同理,如果你从SVN中更新到其他项目成员增加的文件,而没有更新project.pbxproj文件(或者该成员根本就没有提交这个文件),则也会出现相同的现象。

Continue Reading »

3
2011

Getting started with Graphics and Animation

翻译学习了一下Apple官方的《Getting started with Graphics and Animation》,原文见这里

概述

iOS包括一些框架用于图形和动画:

UIKit包括一个objc的库,用于用户界面和2D绘图,也可以通过UIKit做用户界面动画。
Core Graphics是基于C的API,用于绘制矢量图形、位图和PDF内容。(注意,Quartz 2D是指2D画图引擎的术语,Core Graphics是框架的名称。这两个术语是同义词。
Core Animation是基于objc的API,用于增加用户图形界面的平滑效果和动态的反馈
OpenGL ES是OpenGL的移动版本,用于在移动设备上高性能的2D和3D绘图。苹果的OpenGL ES框架包括EAGL,这是一种基于objc的API,它在Core Animation层和UIKit视图上集成了OpenGL ES的渲染功能。

可使用UIKit实现典型的用户界面图形操作,比如绘制图片,设置颜色,填充矩形。另外,图形的转换(Transaction),比如移动、缩放和反转等,平滑的从一个视图或者屏幕过渡(Transition)到另外一个,以及在一个视图或者层中的动画内容。

当需要更强大的2D绘图能力,需要使用Core Graphics框架。它是绘制矢量图、线、形状、模式、渐变、图形,甚至PDF文档的主力。更高层的框架,比如UIKit,使用Core Graphics。

Core Animation是UIKit框架用于层以及过渡的编程接口。大多数时候,开发者不需要直接使用Core Animation。除非当应用中需要细粒度的动画控制。

当开发游戏或者其他需要依赖GPU的高级图形能力时,需要用到OpenGL ES。

Continue Reading »

31
2011

拖动层并播放动画

在下面的示例中,用手势拖动Layer转动,当手势结束时,会播放动画继续让Layer沿着圆的轨道转动一会儿。

imageimage

Continue Reading »

第15页,共93页« 前...11121314151617181920...后 »