Fork me on GitHub

2012年2月10日

摘要: NSString*yourString ="\u043F\u0440\u0438\u043A\u043E\u043B\u044B";NSArray*unicodeArray =[yourString componentsSeparatedByString:@"\\u"];NSMutableString*finalString =[[NSMutableString alloc] initWithString:@""];for(NSString*unicodeString in unicodeArray){ if(![unicodeStr 阅读全文
posted @ 2012-02-10 22:55 pengyingh 阅读(146) 评论(0) 推荐(0)
摘要: 1.不能向上滑动很可能是因为contentSize的大小不对。scrollView的几个属性contentSize contentOffset contentInsetcontentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就是(0 ,480),也就是y偏移了480con 阅读全文
posted @ 2012-02-10 21:32 pengyingh 阅读(19933) 评论(0) 推荐(1)
摘要: 1.判断是否联网:-(BOOL) isConnected{//创建零地址,0.0.0.0的地址表示查询本机的网络连接状态struct sockaddr_in zeroAddress;bzero(&zeroAddress, sizeof(zeroAddress));zeroAddress.sin_len = sizeof(zeroAddress);zeroAddress.sin_family = AF_INET;// Recover reachability flagsSCNetworkReachabilityRef defaultRouteReachability = SCNetwor 阅读全文
posted @ 2012-02-10 21:26 pengyingh 阅读(638) 评论(0) 推荐(0)
摘要: 一、获取系统所支持的国际化信息在国际化之前,你可以在iphone中的”设置->通用->多语言环境->语言”中来查看你的iphone支持哪些语言,当然也可以写一段代码测试一下你的iphone都支持哪些语言.测试代码如下:NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSArray *languages = [defaults objectForKey:@"AppleLanguages"]; NSLog(@"%@", languages);注:NSUser 阅读全文
posted @ 2012-02-10 21:24 pengyingh 阅读(19940) 评论(0) 推荐(0)
摘要: 介绍两种图片的处理方法1,截获当前的屏幕图2,从大图中截图一小块图【1】当前的窗口是一个viewCGSize mSize = self.frame.size; //这个size定义图片的大小 UIGraphicsBeginImageContext(mSize); //读取当前画布的内容[self.layer renderInContext:UIGraphicsGetCurrentContext()];UIImage *tempImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();#if 阅读全文
posted @ 2012-02-10 21:17 pengyingh 阅读(304) 评论(0) 推荐(0)
摘要: iphone的地图程序(google map)中有大头针从屏幕顶部落下的效果,我们叫做drop pin。现在我来模仿一个。红色的大头针从A点drop到B点,以针尖为参照,扎破之前的大头针高46pix,扎破之后的高42pix,所以针尖落地之后要进行相应的调整,我创建一个UIImageview* pin,然后将pin从A点drop到B点。我写了下面的函数:pin是我构造的一个view,大小和大头针一样大。point就是上面说的B点,duration为下落的总时间。默认采用0.5。- (void)dropPinToPoint:(MarkerView*)pin toPoint:(CGPoint)poi 阅读全文
posted @ 2012-02-10 21:16 pengyingh 阅读(698) 评论(0) 推荐(0)
摘要: 我现在要使用SQLite3.0创建一个数据库,然后在数据库中创建一个表格。首先要引入SQLite3.0的lib库。然后包含头文件#import <sqlite3.h>【1】打开数据库,如果没有,那么创建一个sqlite3* database_;-(BOOL) open{ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSSt 阅读全文
posted @ 2012-02-10 21:15 pengyingh 阅读(742) 评论(0) 推荐(0)
摘要: 很有用,现在很多微博在认证的时候都会用到,OAUTH的协议详见http://oauth.net/documentation/getting-started/那在iPhone SDK中如何使用HMAC-SHA1计算呢?Key一般是指的secret串,text是base串。key是两个secret串用&连接起来的,比如说新浪微博,申请application时会得到一个api key和secret,获取request token的时候又获得了一个token secret。在获取access token的时候,key就是secret&token_secret.引入头文件#import 阅读全文
posted @ 2012-02-10 21:13 pengyingh 阅读(3311) 评论(0) 推荐(0)
摘要: 这里以下载图片举例。1,首先创建一个cconnectiondownloadImage是一个线程函数,在子线程中下载图片。//url 图片的url地址- (void) downloadImage:(NSString*)url{ self.uploadPool = [[NSAutoreleasePool alloc] init]; self.characterBuffer = [NSMutableData data]; done = NO; [[NSURLCache sharedURLCache] removeAllCachedResponses]; NSMutableURLRequest *th 阅读全文
posted @ 2012-02-10 21:12 pengyingh 阅读(1392) 评论(1) 推荐(0)
摘要: 1, 在第一步获取Request Token时,需要使用Consumer Key和API Key Secret进行签名 的Consumer Key Secret。方法:oauth/request_token获取request_token之后,要做一件事情,就是让用户登录,调出新浪微博登录页面:- (NSString*)authorizeUrl{ // NSString *baseUrl = [NSString stringWithFormat:@"http://%@/oauth/authorize", SINA_T_HOST]; NSString *url = [NSStr 阅读全文
posted @ 2012-02-10 21:11 pengyingh 阅读(609) 评论(0) 推荐(0)
摘要: + detachNewThreadSelector:toTarget:withObject: 和 - performSelectorInBackground:withObject: 的效果基本一致,如果不打算支持iOS3的话,用GCD要方便很多很多performSelectorOnMainThread是指在主线程上执行某个方法,比如数据下载后,更新UI界面等操作举例说明怎么简单的创建一个子线程。用到的类是NSThread类,这里使用detachNewTheadSelector:toTagaet:withObject创建一个线程。函数setupThread:(NSArray*)userInfor 阅读全文
posted @ 2012-02-10 21:09 pengyingh 阅读(4085) 评论(0) 推荐(0)
摘要: 如果只是简单的下载上传,我觉得这些就够了。用到的类:NSURLRequest NSURL NSURLConnection举简单的例子【1】http GET请求参数url为目的请求URL地址:http://.......注意url是经过URL编码之后的- (NSString*) sendXMLRequest: (NSString*)url;{[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; //NOTE with this way, cookie is send automatically, so i 阅读全文
posted @ 2012-02-10 20:46 pengyingh 阅读(367) 评论(0) 推荐(0)
摘要: 怎样捕获手指的触摸事件呢?理论不说了,在开发文档里面说的很详细。就说说实现。其实就是要重写实现三个函数,如下:touch开始时会调用touchesBegan- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSSet *allTouches = [event allTouches]; UITouch *touch = [touches anyObject]; NSLog(@"touch view++++++%@", [touch view]);//[touch view]获得当前touch的v 阅读全文
posted @ 2012-02-10 20:34 pengyingh 阅读(400) 评论(0) 推荐(0)
摘要: iphone socket开发在iphone的平台下,要进行socket开发其实有很多种的方法,开源的库Asyncsocket,官方的CFSocket,还有BSD的socket。这里要做一个简单的socket普及,这里包含在socket的设置非阻塞和超时的控制逻辑,心跳包和线程的启动时间同步的控制。这里都是标准的linux的流程先创建一个socket- (int)CSocket{if((sockfd = socket(AF_INET, SOCK_STREAM,0)) == -1){perror("socket");exit(errno);}returnsockfd;}然后是 阅读全文
posted @ 2012-02-10 20:31 pengyingh 阅读(489) 评论(0) 推荐(0)
摘要: HUD = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; HUD.labelText = @"Load Web Server"; //HUD.delegate = self; NSURL *url = [NSURL URLWithString:@"http://www.facebook.com"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url]; [request setTimeoutInte 阅读全文
posted @ 2012-02-10 20:27 pengyingh 阅读(759) 评论(0) 推荐(0)
摘要: 在如何通过手势捕获CALayer基础上做了个示例,两个CALayer的联动,当拖动左侧的Layer的时候,右侧的Layer随动。因为右侧的动画没有关闭,有延迟,产生随动的效果。如果不想延迟,可参考拖动动画的问题及解决。在视图的头文件:#import <UIKit/UIKit.h>#import <QuartzCore/QuartzCore.h>#define RADIAS 180@interface AnimationView : UIView <UIGestureRecognizerDelegate>{ CALayer *startLayer; CALay 阅读全文
posted @ 2012-02-10 19:57 pengyingh 阅读(465) 评论(0) 推荐(0)
摘要: 在java中,向方法中传递复杂参数,一般使用对象来传递。因为这样便于扩展。不需要改变方法的声明部分。在objc中,开始是发送多个参数。这样很麻烦。那么可以用到c里面的方式来做,通过struct传递参数。把相关的参数写在一个struct里面。声明struct需要在头文件中:#define MIN_VELOCITY 10#define LOOP_COUNT 100@interface AnimationView : UIView <UIGestureRecognizerDelegate>{ CALayer *startLayer; CALayer *startLayer2;}struc 阅读全文
posted @ 2012-02-10 19:45 pengyingh 阅读(514) 评论(0) 推荐(0)
摘要: 1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co 2、往版本库中添加新的文件svn add file例如:svn addtest.php(添加test.php)svn add *.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库svn commit -m “LogMessage“ [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)例如:svn commit -m “ad. 阅读全文
posted @ 2012-02-10 19:43 pengyingh 阅读(241) 评论(0) 推荐(0)
摘要: 在下面的示例中,用手势拖动Layer转动,当手势结束时,会播放动画继续让Layer沿着圆的轨道转动一会儿。这里包括两个动作,以及针对这两个动作的处理。即:pan手势,即拖动,这时不播放动画,要确保Layer的运动是按照圆的轨迹来移动,而不是拖动到哪里到哪里pan手势的结束,其实应该用swipe手势,这里是简单的监控到pan手势结束,然后按照当前速度,取一个最小值,当超过该值的时候,播放动画继续转动一段时间这是自定义视图的初始化代码部分:- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self 阅读全文
posted @ 2012-02-10 12:03 pengyingh 阅读(625) 评论(0) 推荐(0)
摘要: 翻译学习了一下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的移动版本,用于在移 阅读全文
posted @ 2012-02-10 12:01 pengyingh 阅读(418) 评论(0) 推荐(0)
摘要: Xcode的SVN功能,和Eclipse中的subclipse或者windows下的tortoiseSVN比较起来功能还差很多。我是索性不用的,直接用命令行。我看有的朋友是用subclipse,其实也挺好,不过,为了使用SVN功能要单独开一个耗费资源的Eclipse。但是,不论使用什么SVN工具,都会遇到Xcode固有的问题,即project.pbxproj文件的提交冲突问题。project.pbxproj文件里面包含了构建过程所需的所有文件,如果你在项目目录下增加了新文件,比如没有通过Xcode,该文件就不在project.pbxproj文件中,就不会生成到app中。同理,如果你从SVN中更 阅读全文
posted @ 2012-02-10 11:53 pengyingh 阅读(6419) 评论(0) 推荐(0)
摘要: 贝塞尔曲线,可以通过三个点,来确定一条平滑的曲线。在计算机图形学应该有讲。是图形开发中的重要工具。实现的是一个图形做圆周运动。不过不是简单的关键帧动画那样,是计算出了很多点,当然还是用的关键帧动画,即使用CAKeyframeAnimation。有了贝塞尔曲线的支持,可以赋值给CAKeyframeAnimation 贝塞尔曲线的Path引用。用贝塞尔曲线画圆,是一种特殊情况,我的做法是通过贝塞尔曲线得到4个半圆的曲线,它们合成的路径就是整个圆。以下是动画部分的代码:- (void) doAnimation { CAKeyframeAnimation *animation=[CAKeyframeA 阅读全文
posted @ 2012-02-10 11:52 pengyingh 阅读(8754) 评论(0) 推荐(0)
摘要: iOS有单行和多行显示文本的控件对象:UITextField:简单的单行UITextView:可滚屏的多行在这里使用的是多行文本,即UITextView。代码很简单,需要声明该视图的位置,字体颜色,背景色,是否可编辑以及是否可滚动。textview=[[UITextView alloc] initWithFrame:CGRectMake(550, 140, 400, 300)];textview.backgroundColor = [UIColor colorWithWhite:0 alpha:0];textview.textColor = [UIColor blackColor];textv 阅读全文
posted @ 2012-02-10 11:51 pengyingh 阅读(255) 评论(0) 推荐(0)
摘要: 如何在iOS屏幕上画出一条线来?这是一切复杂画线的基础。之前在计算一个点是否在一个区域中中已经有使用CGPath的示例。那是用来标定区域的,这里使用CGPath画线。示例非常简单。首先要有个UIImageView,在本例中声明为成员变量:@interface PathDemoViewController : UIViewController { UIImageView *imageView;}画线的代码:- (void)viewDidLoad { [super viewDidLoad]; imageView=[[UIImageView alloc] initWithFrame:self.vie 阅读全文
posted @ 2012-02-10 11:49 pengyingh 阅读(368) 评论(0) 推荐(0)
摘要: iOS有时候需要判断是否touch到某个图的区域中。这里做了个小示例,通过CGPath创建一个区域,区域是由路径做两点间线段并闭合成的区域,比如这里创建了一个简单的矩形。然后就可以用CGPath相关函数判断点是否在区域里了。- (void)viewDidLoad { [super viewDidLoad]; CGMutablePathRef pathRef=CGPathCreateMutable(); CGPathMoveToPoint(pathRef, NULL, 4, 4); CGPathAddLineToPoint(pathRef, NULL, 4, 8); CGPathAddLineT 阅读全文
posted @ 2012-02-10 11:48 pengyingh 阅读(541) 评论(0) 推荐(0)
摘要: 在在界面中显示文本内容中写入UITextView的文本,如何保存?可以使用NSUserDefaults:NSUserDefaults *textData;该实例实际上是NSDirectory,保存键值对。在使用中,首先检查是否有该键值对,如果有赋值给TextView的text属性。- (void) initTextView{ textData=[NSUserDefaults standardUserDefaults]; textview=[[UITextView alloc] initWithFrame:CGRectMake(550, 140, 400, 300)]; textview.bac 阅读全文
posted @ 2012-02-10 11:47 pengyingh 阅读(1149) 评论(0) 推荐(0)
摘要: 如何将图片保存到iOS自带的Photo Album中呢?这是调用api生成的当前绘制的图形。代码很简单:UIImageWriteToSavedPhotosAlbum(drawImage.image, nil, nil, nil);这里drawImage是一个UIImageView。为nil的参数,可在UIKit Function Reference中查到。UIImageWriteToSavedPhotosAlbum是UIKit框架中的一个函数。这里说一下后面三个参数的含义:void UIImageWriteToSavedPhotosAlbum ( UIImage *image, id comp 阅读全文
posted @ 2012-02-10 11:46 pengyingh 阅读(272) 评论(0) 推荐(0)
摘要: #import<UIKit/UIKit.h>//代理的协议与模态对话框类的定义@protocolModalWebViewControllerDelegate;@interfaceModalWebViewController : UIViewController{ id<ModalWebViewControllerDelegate>delegate; UIWebView*webView;}@property(nonatomic,assign)id<ModalWebViewControllerDelegate> delegate;@property(nonato 阅读全文
posted @ 2012-02-10 10:47 pengyingh 阅读(248) 评论(0) 推荐(0)
摘要: NSArray中存放的是NSDictionary,可以使用策略的方法对NSDictionary进行定制,增加比较的方法。然后调用NSArray的sortUsingSelector方法对数组进行排序,这里使用NSDictionay中的时间对象的时间排序。具体操作如下:1.定制NSDictionaryXXX.h文件@interface NSMutableDictionary(myCompare)-(NSComparisonResult)myCompareMethodWithDict: (NSMutableDictionary*)theOtherDict;@endXXX.m文件#import &qu 阅读全文
posted @ 2012-02-10 10:07 pengyingh 阅读(565) 评论(0) 推荐(0)
摘要: /*******************************************************************************************NSString*******************************************************************************************///一、NSString/*----------------创建字符串的方法----------------*///1、创建常量字符串。NSString *astring = @"This is a Str 阅读全文
posted @ 2012-02-10 09:48 pengyingh 阅读(402) 评论(0) 推荐(0)
摘要: 在iOS中如何将两张图混合成一张图呢?比如有一张是透明图,另外一张是不透明的,混合为一张图,并且保存起来。有关保存可见将图片保存到照片相册中。上图所示,可将红色手绘的色彩图片和原来的图层混合。代码如下:-(void)generateImageToPhotoAlbum{ NSLog(@"save image to photo album."); UIGraphicsBeginImageContext(CGSizeMake(1024, 768)); [drawImage.image drawInRect:self.frame]; UIImage *foregroundImage 阅读全文
posted @ 2012-02-10 09:04 pengyingh 阅读(1467) 评论(0) 推荐(0)
摘要: 编写了个类似这样的视图动画。其中灰色部分是子视图(UIView)。点击一下,就上移,再点击就退回。上来需要添加的是tap手势的处理:UITapGestureRecognizer *recognizer=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];[self addGestureRecognizer:recognizer];[recognizer release];在tap时会调用下面的方法:-(void)handleTap:(UITapGestureRecognizer *) 阅读全文
posted @ 2012-02-10 09:02 pengyingh 阅读(217) 评论(0) 推荐(0)
摘要: 之前,在在objc项目中使用常量中,使用c的预处理#define来设置常量。比如,可以做个头文件,然后在需要的类文件中import,使用常量。但这不是最佳实践。这样做可能是最好的方式,首先在比如叫Constants.h的头文件中:#import <Foundation/Foundation.h>extern NSString * const kInitURL;@interface Constants : NSObject {}@end这里使用到extern c关键字,表示这个变量已经声明,只是引用。const关键字表示变量是常量,不可修改。在objc的约定里,常量也是大小写混排的驼 阅读全文
posted @ 2012-02-10 08:54 pengyingh 阅读(6072) 评论(0) 推荐(2)
摘要: 转载:http://marshal.easymorse.com/archives/4152在java语言里,可以通过如下代码来实现加载类的时候执行对类的操作,一般叫:类初始块,或者,类加载块。比如:public class MyClass{ static{ …… }}在objc语言里,对应的机制是,类方法,load和initialize。比如:#import "Constants.h"@implementation Constants+ (void)initialize{ NSLog(@"init constants >>>>>> 阅读全文
posted @ 2012-02-10 08:48 pengyingh 阅读(128) 评论(0) 推荐(0)

导航