iphone开发中的一些小技
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” 鍵以后程序可能并沒有退出而是轉入了后臺運行。如果您想讓應用直接退出,最簡單的方法是:在 info -plist 里面找到 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开发中的一些小技的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【ASP】Menu菜单导航
- 下一篇: 风信子