- srandom(time(NULL)); //隨機數種子
- id d = random(); // 隨機數
2. 視頻播放
- MPMoviePlayerController *moviePlayer;
- moviePlayer = [[MPMoviePlayerController alloc]
- initWithContentURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Movie" ofType:@"m4v"]]];
- //初始化視頻播放器對象,並傳入被播放文件的地址
- moviePlayer.movieControlMode = MPMovieControlModeDefault;
- [moviePlayer play];
- //此處有內存溢出
3. 啓動界面顯示
- iPhone軟件啓動後的第一屏圖片是非常重要的往往就是loading載入中的意思。設置它說來也簡單,但是卻無比重要
- 只需要在resource裏面將你希望設置的圖片更名爲Default.png,這個圖片就可以成爲iPhone載入的缺省圖片
4. iPhone的系統目錄
- *//得到Document目錄:
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDirectory = [paths objectAtIndex:0];
- //得到temp臨時目錄:
- NSString *tempPath = NSTemporaryDirectory();
- //得到目錄上的文件地址:
- NSString *文件地址 = [目錄地址 stringByAppendingPathComponent:@"文件名.擴展名"];
5. 狀態欄顯示Indicator
- [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
6.app Icon顯示數字
- - (void)applicationDidEnterBackground:(UIApplication *)application{
- [[UIApplication sharedApplication] setApplicationIconBadgeNumber:5];
- }
7.sqlite保存地址
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *thePath = [paths objectAtIndex:0];
- NSString *filePath = [thePath stringByAppendingPathComponent:@"kilonet1.sqlite"];
-
- NSString *dbPath = [[[NSBundle mainBundle] resourcePath]
- stringByAppendingPathComponent:@"kilonet2.sqlite"];
8.Application退出
- exit(0);
9. AlertView,ActionSheet的cancelButton點擊事件
- -(void) actionSheet :(UIActionSheet *) actionSheet didDismissWithButtonIndex:(NSInteger) buttonIndex {
- NSLog(@"cancel actionSheet........");
- //當用戶按下cancel按鈕
- if( buttonIndex == [actionSheet cancelButtonIndex]) {
- exit(0);
- }
- // //當用戶按下destructive按鈕
- // if( buttonIndex == [actionSheet destructiveButtonIndex]) {
- // // DoSomething here.
- // }
- }
- - (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex {
- NSLog(@"cancel alertView........");
- if (buttonIndex == [alertView cancelButtonIndex]) {
- exit(0);
- }
- }
10.給Window設置全局的背景圖片
- window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"coolblack.png"]];
11. UITextField文本框顯示及對鍵盤的控制
- #pragma mark -
- #pragma mark UITextFieldDelegate
- //控制鍵盤跳轉
- - (BOOL)textFieldShouldReturn:(UITextField *)textField {
-
- if (textField == _txtAccount) {
- if ([_txtAccount.text length]==0) {
- return NO;
- }
- [_txtPassword becomeFirstResponder];
- } else if (textField == _txtPassword) {
- [_txtPassword resignFirstResponder];
- }
-
- return YES;
- }
- //輸入框背景更換
- -(BOOL) textFieldShouldBeginEditing:(UITextField *)textField{
-
- [textField setBackground:[UIImage imageNamed:@"ctext_field_02.png"]];
-
- return YES;
- }
- -(void) textFieldDidEndEditing:(UITextField *)textField{
- [textField setBackground:[UIImage imageNamed:@"ctext_field_01.png"]];
- }
12.UITextField文本框前面空白寬度設置以及後面組合按鈕設置
- //給文本輸入框後面加入空白
- _txtAccount.rightView = _btnDropDown;
- _txtAccount.rightViewMode = UITextFieldViewModeAlways;
-
- //給文本輸入框前面加入空白
- CGRect frame = [_txtAccount frame];
- frame.size.width = 5;
- UIView *leftview = [[UIView alloc] initWithFrame:frame];
- _txtAccount.leftViewMode = UITextFieldViewModeAlways;
- _txtAccount.leftView = leftview;
13. UIScrollView 設置滑動不超出本身範圍
- [fcScrollView setBounces:NO];
14. 遍歷View裏面所有的Subview
- NSLog(@"subviews count=%d",[self.view.subviews count]);
- if ([self.view.subviews count] > 0) {
- for (UIView *curView in self.view.subviews) {
- NSLog(@"view.subviews=%@", [NSString stringWithUTF8String:object_getClassName(curView)]);
- }
- }
15. 在drawRect裏畫文字
- UIFont * f = [UIFont systemFontOfSize:20];
- [[UIColor darkGrayColor] set];
- NSString * text = @"hi \nKiloNet";
- [text drawAtPoint:CGPointMake(center.x,center.y) withFont:f];
16. NSArray查找是否存在對象時用indexOfObject,如果不存在則返回爲NSNotFound.
17. NString與NSArray之間相互轉換
- array = [string componentsSeparatedByString:@","];
- string = [[array valueForKey:@"description"] componentsJoinedByString:@","];
18. TabController隨意切換tab bar
- [self.tabBarController setSelectedIndex:tabIndex];
- 或者 self.tabBarController.selectedIndex = tabIndex;
- 或者實現下面的delegate來撲捉tab bar的事件:
- 代碼
- -(BOOL) tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
-
- if ([viewController.tabBarItem.title isEqualToString: NSLocalizedString(@"Logout",nil)]) {
- [self showLogout];
- return NO;
- }
- return YES;
- }
19. 自定義View之間切換動畫
- - (void) pushController: (UIViewController*) controller
- withTransition: (UIViewAnimationTransition) transition
- {
- [UIView beginAnimations:nil context:NULL];
- [self pushViewController:controller animated:NO];
- [UIView setAnimationDuration:.5];
- [UIView setAnimationBeginsFromCurrentState:YES];
- [UIView setAnimationTransition:transition forView:self.view cache:YES];
- [UIView commitAnimations];
- }
- 或者:
- 代碼
- CATransition *transition = [CATransition animation];
- transition.duration = kAnimationDuration;
- transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
- transition.type = kCATransitionPush;
- transition.subtype = kCATransitionFromTop;
- transitioning = YES;
- transition.delegate = self;
- [self.navigationController.view.layer addAnimation:transition forKey:nil];
-
- self.navigationController.navigationBarHidden = NO;
- [self.navigationController pushViewController:tableViewController animated:YES];
20. UIWebView加載時白色顯示問題解決以及字體統一設置
- <B>uiWebView</B>.opaque = NO;
21.計算字符串長度
- CGFloat w = [title sizeWithFont:[UIFont fontWithName:@"Arial" size:18]].width;
22.時間轉換NSString & NSDate
- -(NSDate *)NSStringDateToNSDate:(NSString *)string {
- NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
- [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
- [formatter setDateFormat:@"yyyy-MM-dd"];
- NSDate *date = [formatter dateFromString:string];
- [formatter release];
- return date;
- }
- NSString *year = [myDate descriptionWithCalendarFormat:@"%Y" timeZone:nil locale:nil];
- or
- NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
- [formatter setDateFormat:@"yyyy"];
- //Optionally for time zone converstions
- [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"..."]];
- NSString *stringFromDate = [formatter stringFromDate:myNSDateInstance];
23.模擬器的文件位置
- 其中#username#表示當前用戶名:
- /Users/#username#/Library/Application Support/iPhone Simulator/User/Applications/
24.UISearchBar時背景透明
- [[searchbar.subviews objectAtIndex:0]removeFromSuperview];
25. 圖像與緩存
- UIImageView *wallpaper = [[UIImageView alloc] initWithImage:
- [UIImage imageNamed:@"icon.png"]]; // 會緩存圖片
- UIImageView *wallpaper = [[UIImageView alloc] initWithImage:
- [UIImage imageWithContentsOfFile:@"icon.png"]]; // 不會緩存圖片
26.常用的對視圖圖層(layer)的操作
- 對圖層的操作:
- (1.給圖層添加背景圖片:
- myView.layer.contents = (id)[UIImage imageNamed:@"view_BG.png"].CGImage;
- (2.將圖層的邊框設置爲圓腳
- myWebView.layer.cornerRadius = 8;
- myWebView.layer.masksToBounds = YES;
- (3.給圖層添加一個有色邊框
- myWebView.layer.borderWidth = 5;
- myWebView.layer.borderColor = [[UIColor colorWithRed:0.52 green:0.09 blue:0.07 alpha:1] CGColor];
27. UIPopoverController 使用
- -(void) onSetting:(id) sender {
- SplitBaseController *detail = [[SettingServerController alloc] init];
-
- CGRect frame = [(UIView *)sender frame];
- frame.origin.y = 0;
-
- UIPopoverController *popwin = [[UIPopoverController alloc] initWithContentViewController:detail];
- [popwin setPopoverContentSize:CGSizeMake(400, 300) animated:YES];
- popwin.delegate = self;
- [popwin presentPopoverFromRect: frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
- [detail release];
- }
28.在UINavigationBar中添加左箭頭返回按鈕
- 在iPhone裏面最討厭的控件之一就是 UINavigationBar了。這個控件樣式修改不方便,連添加按鈕也特別麻煩。下面的例子是如何手動添加帶箭頭的按鈕:
- UINavigationItem *item = [navBar.items objectAtIndex:0];
- UINavigationItem *back = [[UINavigationItem alloc] initWithTitle:@"Back"];
- NSArray *items = [[NSArray alloc] initWithObjects:back,item,nil];
- [navBar setItems:items];
- - (BOOL)navigationBar:(UINavigationBar *)navigationBar
- shouldPopItem:(UINavigationItem *)item{
- //在此處添加點擊back按鈕之後的操作代碼
- return NO;
- }
29.UILable自動換行
- CGSize titleBrandSizeForHeight = [titleBrand.text sizeWithFont:titleBrand.font];
- CGSize titleBrandSizeForLines = [titleBrand.text sizeWithFont:titleBrand.font constrainedToSize:CGSizeMake(infoWidth, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
- titleBrand.numberOfLines = ceil(titleBrandSizeForLines.height/titleBrandSizeForHeight.height);
- if (titleBrand.numberOfLines <= 1) {
- titleBrand.frame = CGRectMake(5, titleBrand.frame.size.height , infoWidth, titleBrandSizeForHeight.height);
- }else {
- titleBrand.frame = CGRectMake(5, titleBrand.frame.size.height , infoWidth, titleBrand.numberOfLines*titleBrandSizeForHeight.height);
- }
30.UIButton 點擊事件
- //創建UIButton
- UIButton *sampleButton =[UIButton buttonWithType:UIButtonTypeRoundedRect];
- [sampleButton setFrame:CGRectMake(240,25,60,30)];
- [sampleButton setTitle:@"聊天" forState:UIControlStateNormal];
- [sampleButton.titleLabel setFont:[UIFont boldSystemFontOfSize:14]];
- [sampleButton addTarget:self action:@selector(onBtnClick:) forControlEvents:UIControlEventTouchUpInside];//onBtnClick爲方法名稱
- -(void) onBtnClick:(id)sender
- {
- NSLog(@"按鈕點擊事件");
- }