日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

iphone开发中的一些小技

發布時間:2025/3/14 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iphone开发中的一些小技 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在iPhone開發過程中,一些小技巧對開發工作有很大的幫助作用,所以以下內容收集了一些開發過程中的小技巧。 1、如果在程序中想對某張圖片進行處理的話(得到某張圖片的一部分)可一用以下代碼: ? UIImage *image = [UIImage imageNamed :filename];

CGImageRef imageRef = image.CGImage ;

CGRect rect = CGRectMake (origin.x , origin.y ,size.width , size.height );

CGImageRef imageRefRect = CGImageCreateWithImageInRect (imageRef, rect);

UIImage *imageRect = [[UIImage alloc ] initWithCGImage :imageRefRect];

?

2、判斷設備是iphone還是iphone4的代碼:

?

#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640 , 960 ), [[UIScreen mainScreen] currentMode].size) : NO)

?

3、判斷郵箱輸入的是否正確:

?

- (BOOL ) validateEmail: (NSString *) candidate {

NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";?

NSPredicate *emailTest = [NSPredicate predicateWithFormat :@"SELF MATCHES %@" , emailRegex];?

?

return [emailTest evaluateWithObject :candidate];

}

?

4、如何把當前的視圖作為照片保存到相冊中去:

?

#import <QuartzCore/QuartzCore.h>

UIGraphicsBeginImageContext(currentView.bounds .size ); ? ? //currentView 當前的 view

[currentView. layer renderInContext: UIGraphicsGetCurrentContext()];

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

UIImageWriteToSavedPhotosAlbum(viewImage, nil , nil , nil );

?

5、本地通知(類似于push通知)按home鍵到后臺 十秒后觸發:

UILocalNotification *notification=[[UILocalNotification alloc ] init ];?

if (notification!=nil ) {?

NSLog ( @">> support local notification");?

NSDate *now=[NSDate new ];?

notification.fireDate =[now addTimeInterval :10 ];?

notification.timeZone =[NSTimeZone defaultTimeZone ];?

notification.alertBody =@" 該去吃晚飯了! " ;?

[[ UIApplication sharedApplication]. scheduleLocalNotification:notification];

}

?

6、捕獲iphone通話事件:

CTCallCenter *center = [[CTCallCenter alloc ] init ];

center.callEventHandler = ^(CTCall *call )?

{

NSLog (@"call:%@" , call .callState);

}

?

7、 iOS 4 引入了多任務支持,所以用戶按下 “Home” 鍵以后程序可能并沒有退出而是轉入了后臺運行。如果您想讓應用直接退出,最簡單的方法是:在 infoplist 里面找到 Application does not run in background 一項,勾選即可。

?

8、使UIimageView的圖像旋轉:

?

float rotateAngle = M_PI ;

CGAffineTransform transform =CGAffineTransformMakeRotation (rotateAngle);

imageView.transform = transform;

?

9、設置旋轉的原點:

?

#import? <QuartzCore/QuartzCore.h>

UIImageView *imageView = [[UIImageView alloc ] initWithImage :[UIImage imageNamed :@"bg.png" ]];

imageView.layer.anchorPoint = CGPointMake (0.5 , 1.0 );

?

10、實現自定義的狀態欄(遮蓋狀態欄):

CGRect frame = {{0 , 0 }, {320 , 20 }};

UIWindow* wd = [[UIWindow alloc ] initWithFrame :frame];

[wd setBackgroundColor:[ UIColor clearColor]];

[wd setWindowLevel : UIWindowLevelStatusBar];

frame = CGRectMake (100 , 0 , 30 , 20 );

UIImageView* img = [[UIImageView alloc ] initWithFrame :frame];

[img setContentMode: UIViewContentModeCenter];

[img setImage:[ UIImage imageNamed: @"00_0103.png" ]];

[wd addSubview :img];

[wd makeKeyAndVisible];

?

[ UIView beginAnimations: nil context: nil ];

[ UIView setAnimationDuration: 2 ];

frame.origin.x += 150 ;

[img setFrame :frame];

[ UIView commitAnimations];

?

11、在程序中實現電話的撥打:

?

// 添加電話圖標按鈕?

UIButton *btnPhone = [[ UIButton buttonWithType: UIButtonTypeCustom] retain];?

btnPhone.frame = CGRectMake (280 ,10 ,30 ,30 );?

UIImage *image = [UIImage imageNamed :@"phone.png" ];?????

[btnPhone setBackgroundImage:image forState: UIControlStateNormal];?

?

// 點擊撥號按鈕直接撥號?

[btnPhone addTarget: self action: @selector (callAction:event:) forControlEvents: UIControlEventTouchUpInside];?

?

[cell. contentView addSubview :btnPhone];?? //cell是一個 UITableViewCell?

?

// 定義點擊撥號按鈕時的操作?

- (void )callAction:(id )sender event:(id )event{?

NSSet *touches = [event allTouches ];?

UITouch *touch = [touches anyObject ];?

CGPoint currentTouchPosition = [touch locationInView :self .listTable];?

NSIndexPath *indexPath = [self .listTable indexPathForRowAtPoint : currentTouchPosition];?

if (indexPath == nil ) {?

return;?

}?

NSInteger section = [indexPath section ];?

NSUInteger row = [indexPath row ];?

NSDictionary *rowData = [datas objectAtIndex :row];?

?

NSString *num = [[NSString alloc ] initWithFormat :@"tel://%@" ,number]; //number 為號碼字符串 ?????

[[ UIApplication sharedApplication] openURL:[ NSURL URLWithString:num]]; // 撥號 ?

}

?

12、更改iphone的鍵盤顏色:

?

1. 只有這 2種數字鍵盤才有效果。 UIKeyboardTypeNumberPad UIKeyboardTypePhonePad

2. keyboardAppearance UIKeyboardAppearanceAlert?

- (void )textViewDidBeginEditing:(UITextView *)textView{

NSArray *ws = [[ UIApplication sharedApplication] windows];

for (UIView *w in ws){

NSArray *vs = [w subviews ];

for (UIView *v in vs)

{

if ([[ NSString stringWithUTF8String: object_getClassName(v)] isEqualToString: @"UIKeyboard" ])

{

v. backgroundColor = [ UIColor redColor ];

}

}

}

?

13、設置時區

?

?

NSTimeZone *defaultTimeZone = [NSTimeZone defaultTimeZone ];

NSTimeZone *tzGMT = [ NSTimeZone timeZoneWithName : @"GMT" ];

[ NSTimeZone setDefaultTimeZone:tzGMT];

上面兩個時區任意用一個。

?

14、Ipad隱藏鍵盤的同時觸發方法。

?

?

[[ NSNotificationCenter defaultCenter] addObserver: self

selector :@selector (keyboardWillHide:)

name : UIKeyboardWillHideNotification

? object :nil ];

?

- (IBAction )keyboardWillHide:(NSNotification *)note

?

14、在一個程序中打開另一個程序的方法。

?

http://www.cocoachina.com/iphonedev/sdk/2010/0322/768.html

15、計算字符串的字數

-(int )calculateTextNumber:(NSString *)text

{

float number = 0.0 ;

int index = 0 ;

for (index; index < [text length ]; index++)

{

NSString *protoText = [text substringToIndex :[text length ] - index];

NSString *toChangetext = [text substringToIndex :[text length ] -1 -index];

NSString *charater;

if ([toChangetext length ]==0 )

{

charater = protoText;

}

else?

{

NSRange range = [text rangeOfString :toChangetext];

charater = [protoText stringByReplacingCharactersInRange:range withString: @"" ];

?

}

NSLog (charater);

if ([charater lengthOfBytesUsingEncoding: NSUTF8StringEncoding] == 3 )

{

number++;

}

else?

{

number = number+0.5 ;

}

}

return ceil (number);

}??

16。字符串建立類

NSString* class = [[tableViewDataobjectAtIndex:indexPath.row] objectForKey:@"class"];

? Class detailClass = NSClassFromString(class);

? UIViewController* detailViewController = [[[detailClass alloc] initWithNibName:@"BaseViewController" bundle:nil] autorelease];


17.release 時去掉nslog的方法???
#ifndef __OPTIMIZE__
#????define NSLog(...) NSLog(__VA_ARGS__)
#else
#????define NSLog(...) {}
#endif

#ifdef DEBUG

#define DebugLog(log, ...) NSLog((@"%s [Line %d]\n\t"?log), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)

轉載于:https://www.cnblogs.com/codeApp/archive/2012/11/15/2771990.html

總結

以上是生活随笔為你收集整理的iphone开发中的一些小技的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。