Iphone开发基础秘籍.docx
- 文档编号:3733352
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:25
- 大小:25.04KB
Iphone开发基础秘籍.docx
《Iphone开发基础秘籍.docx》由会员分享,可在线阅读,更多相关《Iphone开发基础秘籍.docx(25页珍藏版)》请在冰豆网上搜索。
Iphone开发基础秘籍
1.stringWithFormat用法:
[NSStringstringWithFormat:
@"Hight:
%d°%@ Low:
%d°%@",[Temp],@"C",[lTemp],@"C"];
NSStringtoNSData:
NSString*str=@"kilonet";
NSData*data=[strdataUsingEncoding:
NSUTF8StringEncoding];
2.NSDate用法:
NSDate *today;
NSDate*tomorrow;
today=[NSDatedate];
tomorrow=[NSDatedateWithTimeInterval:
(i*24*60*60)sinceDate:
today];//可能有更好的
Dateformat用法:
-(NSString*)getDay:
(NSDate*)d{
NSString*s;
NSDateFormatter*format=[[NSDateFormatteralloc]init];
[formatsetDateFormat:
@"YYYY/MM/ddhh:
mm:
ss"];
s=[formatstringFromDate:
d];
[formatrelease];
returns;
}
各地时区获取:
代码
NSDate*nowDate=[NSDatenew];
NSDateFormatter*formatter = [[NSDateFormatteralloc]init];
[formatter setDateFormat:
@"yyyy/MM/ddHH:
mm:
ss"];
// 根据时区名字获取当前时间,如果该时区不存在,默认获取系统当前时区的时间
// NSTimeZone*timeZone=[NSTimeZonetimeZoneWithName:
@"Europe/Andorra"];
// [formattersetTimeZone:
timeZone];
//获取所有的时区名字
NSArray*array=[NSTimeZoneknownTimeZoneNames];
// NSLog(@"array:
%@",array);
//for循环
// for(inti=0;i<[arraycount];i++)
// {
// NSTimeZone*timeZone=[NSTimeZonetimeZoneWithName:
[arrayobjectAtIndex:
i]];
// [formattersetTimeZone:
timeZone];
// NSString*locationTime=[formatterstringFromDate:
nowDate];
// NSLog(@"时区名字:
%@ :
时区当前时间:
%@",[arrayobjectAtIndex:
i],locationTime);
// //NSLog(@"timezonenameis:
%@",[arrayobjectAtIndex:
i]);
// }
//快速枚举法
for(NSString*timeZoneNameinarray){
[formattersetTimeZone:
[NSTimeZonetimeZoneWithName:
timeZoneName]];
NSLog(@"%@,%@",timeZoneName,[formatterstringFromDate:
nowDate]);
}
[formatterrelease];
[nowDaterelease];
获取毫秒时间:
代码
NSDateFormatter*dateFormatter=[[NSDateFormatteralloc]init];
[dateFormattersetDateStyle:
NSDateFormatterMediumStyle];
[dateFormattersetTimeStyle:
NSDateFormatterShortStyle];
//[dateFormattersetDateFormat:
@"hh:
mm:
ss"]
[dateFormattersetDateFormat:
@"yyyy-MM-ddHH:
mm:
ss.SSS"];
NSLog(@"Date%@",[dateFormatterstringFromDate:
[NSDatedate]]);
[dateFormatterrelease];
3.NSCalendar用法:
-(NSString*)getWeek:
(NSDate*)d{
NSCalendar*calendar=[[NSCalendaralloc]initWithCalendarIdentifier:
NSGregorianCalendar];
unsignedunits=NSYearCalendarUnit|NSMonthCalendarUnit| NSDayCalendarUnit|NSWeekdayCalendarUnit;
NSDateComponents*components=[calendarcomponents:
unitsfromDate:
d];
[calendarrelease];
switch([componentsweekday]){
case2:
return@"Monday";
break;
case3:
return@"Tuesday";
break;
case4:
return@"Wednesday";
break;
case5:
return@"Thursday";
break;
case6:
return @"Friday";
break;
case7:
return @"Saturday";
break;
case1:
return@"Sunday";
break;
default:
return@"NoWeek";
break;
}
//用components,我们可以读取其他更多的数据。
}
4.用Get方式读取网络数据:
//将网络数读取为字符串
-(NSString*)getDataByURL:
(NSString*)url{
return[[NSStringalloc]initWithData:
[NSDatadataWithContentsOfURL:
[NSURLURLWithString:
[urlstringByAddingPercentEscapesUsingEncoding:
NSUTF8StringEncoding]]]encoding:
NSUTF8StringEncoding];
}
//读取网络图片
-(UIImage*)getImageByURL:
(NSString*)url{
return[[UIImagealloc]initWithData:
[NSDatadataWithContentsOfURL:
[NSURLURLWithString:
[urlstringByAddingPercentEscapesUsingEncoding:
NSUTF8StringEncoding]]]];
}
5.多线程NSThread用法:
[NSThreaddetachNewThreadSelector:
@selector(scheduleTask)toTarget:
selfwithObject:
nil];
-(void)scheduleTask{
//createapool
NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];
//releasethepool;
[poolrelease];
}
//如果有参数,则这么使用:
[NSThreaddetachNewThreadSelector:
@selector(scheduleTask:
)toTarget:
selfwithObject:
[NSDatedate]];
-(void)scheduleTask:
(NSDate*)mdate{
//createapool
NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];
//releasethepool;
[poolrelease];
}
//注意selector里有冒号。
//在线程里运行主线程里的方法
[selfperformSelectorOnMainThread:
@selector(moveToMain)withObject:
nilwaitUntilDone:
FALSE];
6.定时器NSTimer用法:
代码
//一个可以自动关闭的Alert窗口
UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:
nil
message:
[@"一个可以自动关闭的Alert窗口"
delegate:
nil
cancelButtonTitle:
nil//NSLocalizedString(@"OK",@"OK") //取消任何按钮
otherButtonTitles:
nil];
//[alertsetBounds:
CGRectMake(alert.bounds.origin.x,alert.bounds.origin.y,alert.bounds.size.width,alert.bounds.size.height+30.0)];
[alertshow];
UIActivityIndicatorView*indicator=[[UIActivityIndicatorViewalloc]initWithActivityIndicatorStyle:
UIActivityIndicatorViewStyleWhiteLarge];
//Adjusttheindicatorsoitisupafewpixelsfromthebottomofthealert
indicator.center=CGPointMake(alert.bounds.size.width/2, alert.bounds.size.height-40.0);
[indicatorstartAnimating];
[alertinsertSubview:
indicatoratIndex:
0];
[indicatorrelease];
[NSTimerscheduledTimerWithTimeInterval:
3.0f
target:
self
selector:
@selector(dismissAlert:
)
userInfo:
[NSDictionarydictionaryWithObjectsAndKeys:
alert,@"alert",@"testing",@"key",nil] //如果不用传递参数,那么可以将此项设置为nil.
repeats:
NO];
NSLog(@"releasealert");
[alertrelease];
-(void)dismissAlert:
(NSTimer*)timer{
NSLog(@"releasetimer");
NSLog([[timeruserInfo] objectForKey:
@"key"]);
UIAlertView*alert=[[timeruserInfo] objectForKey:
@"alert"];
[alertdismissWithClickedButtonIndex:
0animated:
YES];
}
定时器停止使用:
[timerinvalidate];
timer=nil;
7.用户缺省值NSUserDefaults读取:
//得到用户缺省值
NSUserDefaults*defs=[NSUserDefaultsstandardUserDefaults];
//在缺省值中找到AppleLanguages,返回值是一个数组
NSArray*languages=[defsobjectForKey:
@"AppleLanguages"];
NSLog(@"alllanguage语言is%@",languages);
//在得到的数组中的第一个项就是用户的首选语言了
NSLog(@"首选语言is%@",[languagesobjectAtIndex:
0]);
//getthelanguage&countrycode
NSLocale*currentLocale=[NSLocalecurrentLocale];
NSLog(@"LanguageCodeis%@",[currentLocaleobjectForKey:
NSLocaleLanguageCode]);
NSLog(@"CountryCodeis%@",[currentLocaleobjectForKey:
NSLocaleCountryCode]);
8.View之间切换的动态效果设置:
SettingsController*settings=[[SettingsControlleralloc]initWithNibName:
@"SettingsView"bundle:
nil];
settings.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal; //水平翻转
[selfpresentModalViewController:
settingsanimated:
YES];
[settingsrelease];
9.NSScrollView滑动用法:
-(void)scrollViewDidScroll:
(UIScrollView*)scrollView{
NSLog(@"正在滑动中...");
}
//用户直接滑动NSScrollView,可以看到滑动条
-(void)scrollViewDidEndDecelerating:
(UIScrollView*)scrollView{
}
//通过其他控件触发NSScrollView滑动,看不到滑动条
-(void)scrollViewDidEndScrollingAnimation:
(UIScrollView*)scrollView{
}
10.读取全局的Delegate:
KiloNetAppDelegate*appdelegate=(KiloNetAppDelegate*)[[UIApplicationsharedApplication]delegate];
11.键盘处理系列
//settheUIKeyboardtoswitchtoadifferenttextfieldwhenyoupressreturn
//switchtextFieldtothenameofyourtextfield
[textFieldbecomeFirstResponder];
12.半透明层的实现:
半透明层
+(void)showWaiting:
(UIView*)parent{
intwidth=32,height=32;
CGRectframe=[parentframe];//[[UIScreenmainScreen]applicationFrame];
intx=frame.size.width;
inty=frame.size.height;
frame=CGRectMake((x-width)/2,(y-height)/2,width,height);
UIActivityIndicatorView*progressInd=[[UIActivityIndicatorViewalloc]initWithFrame:
frame];
[progressIndstartAnimating];
progressInd.activityIndicatorViewStyle=UIActivityIndicatorViewStyleWhiteLarge;
// frame=CGRectMake((x-140)/2,(y-height)/2+height,140,30);
// UILabel*waitingLable=[[UILabelalloc]initWithFrame:
frame];
// waitingLable.text=@"Proccesing...";
// waitingLable.textColor=[UIColorwhiteColor];
// waitingLable.font=[UIFontsystemFontOfSize:
15];
// waitingLable.backgroundColor=[UIColorclearColor];
frame=[parentframe];
UIView*theView=[[UIViewalloc]initWithFrame:
frame];
theView.backgroundColor=[UIColorblackColor];
theView.alpha=0.8;
[theViewaddSubview:
progressInd];
// [theViewaddSubview:
waitingLable];
[progressIndrelease];
// [waitingLablerelease];
[theViewsetTag:
9999];
[parentaddSubview:
theView];
[theViewrelease];
}
+(void)hideWaiting:
(UIView*)parent{
[[parentviewWithTag:
9999]removeFromSuperview];
}
13.设置View的圆角:
//首先应用 #import
view.layer.cornerRadius=10;
view.layer.masksToBounds=YES;
14.UIWebView显示本地图片(目前有点问题,无法正确显示图片):
代码
NSString*imagePath=[[NSBundlemainBundle]resourcePath];
imagePath=[im
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Iphone 开发 基础 秘籍