国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

博客筆記總結(jié)1

2019-11-09 17:49:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
1.根據(jù)漢字字符串獲取該字符串的拼音然后取得首字母(這個(gè)我之前寫過(guò)博文)
[objc] view plain copy 在CODE上查看代碼片<span style="font-size:18px;">分享資源    漢字轉(zhuǎn)換為 拼音 獲取首字母  //獲取拼音首字母(傳入漢字字符串, 返回大寫拼音首字母)  /* - (NSString *)firstCharactor:(NSString *)aString {     //轉(zhuǎn)成了可變字符串     NSMutableString *str = [NSMutableString stringWithString:aString];     //先轉(zhuǎn)換為帶聲調(diào)的拼音     CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);     //再轉(zhuǎn)換為不帶聲調(diào)的拼音     CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformStrNSString *contentString = [dic objectForKey:@"content"] ; //從字典中提取字符串  CGRect rect = [contentString boundingRectWithSize:CGSizeMake(tableView.bounds.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName :[UIFont systemFontOfSize:15]} context:nil] ;      // 內(nèi)容的自適應(yīng)高度方法       *  @param CGSize 規(guī)定文本顯示的最大范圍          @param options 按照何種設(shè)置來(lái)計(jì)算范圍          @param attributes 文本內(nèi)容的一些屬性,例如self.tableView.rowHeight = UITableViewAutomaticDimension;      self.tableView.estimatedRowHeight = 150;  3.%20把圖片做成圓形圖標(biāo)(非常常用)[objc] view%20plain copy self.headIconImageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 40, 40)] ;  self.headIconImageView.layer.cornerRadius = 20 ; // 設(shè)置半徑   self.headIconImageView.layer.masksToBounds = YES ; // 邊界是否允許截取  4.%20NSTimer計(jì)時(shí)器使用實(shí)例代碼如下:[objc] view%20plain copy // 第一個(gè)參數(shù):多長(zhǎng)時(shí)間會(huì)觸發(fā)一次,以秒為單位  // 第二個(gè)參數(shù):如果看到函數(shù)的參數(shù)有target,一般情況下,都用self  // 第三個(gè)參數(shù):SEL,需要調(diào)用其他的方法,就是每次時(shí)鐘被觸發(fā)的時(shí)候,去執(zhí)行的方法  // 最多可以帶一個(gè)參數(shù),就是時(shí)鐘本身  // 第四個(gè)參數(shù),暫時(shí)不用考慮,設(shè)置成nil  // 第五個(gè)參數(shù):是否重復(fù),通常會(huì)設(shè)置YES    _gameTimer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];  a.在時(shí)鐘觸發(fā)方法中,可以使用sender.fireDate獲取到時(shí)鐘被觸發(fā)的時(shí)間b.注意:使用NSTimer的時(shí)候,千萬(wàn)不要忘記調(diào)用invalidate方法關(guān)閉時(shí)鐘。c.NSTimer可能不會(huì)是及時(shí)相應(yīng)觸發(fā)時(shí)間的,它的執(zhí)行優(yōu)先級(jí)相對(duì)較低,因此,不要使用NSTimer去做實(shí)時(shí)響應(yīng)需求較高的周期性操作。5.%20NSNumbera.是數(shù)字的NS對(duì)象的表達(dá)形式,如果要把數(shù)字添加到數(shù)組或者字典中,必須要進(jìn)行轉(zhuǎn)換,同時(shí)要使用數(shù)組中的數(shù)字,還需要轉(zhuǎn)換成對(duì)應(yīng)的數(shù)字。b.要轉(zhuǎn)換數(shù)字可以使用OC提供的包裝方法:@(int)c.要把NSNumber轉(zhuǎn)換成字符串,需要使用stringValue方法

6.取消圖片的渲染[objc] view%20plain copy [button setImage:[[UIImage imageNamed:@"1.jpg" ] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]  forState:UIControlStateNormal] ;  
7.單例+方法鎖
[objc] view plain copy 在CODE上查看代碼片static Singleton *singleton = nil ;    + (Singleton *)defaultSingleton  {      // 方法鎖,作用為:當(dāng)多個(gè)線程同時(shí)調(diào)用方法的時(shí)候,保證只有一個(gè)線程在使用該方法.例如:A和B同時(shí)調(diào)用defaultSingleton方法,如果A正在使用該方法,那么B就不能調(diào)用,直到A使用完成,B才會(huì)執(zhí)行該方法.這個(gè)也保證單例對(duì)象的唯一性,避免初始化方法被同時(shí)多次執(zhí)行.      @synchronized(self)      {          if (singleton == nil)          {              singleton = [[Singleton alloc] init] ;          }  }          return singleton ;  }  8.隱藏狀態(tài)欄%20修改狀態(tài)欄風(fēng)格[objc] view%20plain copy -(UIStatusBarStyle)// tableView可移動(dòng)  移動(dòng)完成之后會(huì)調(diào)用此代理方法  - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath  {    }    // 移動(dòng)過(guò)程中調(diào)用的代理方法 -- 示例為不能跨區(qū)移動(dòng)  /**  *  <#Description#>  *  *  @param tableView  *  @param sourceIndexPath              所要移動(dòng)單元格的原始位置  *  @param proposedDestinationIndexPath 將要移動(dòng)到的位置  *  *  @return return value description  */  - (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath  {      // 移動(dòng)位置在同一分區(qū)      if (sourceIndexPath.section == proposedDestinationIndexPath.section)      {          // 這時(shí)允許單元格移動(dòng)          return proposedDestinationIndexPath ;      }      // 不在同一分區(qū) 不讓單元格移動(dòng),返回原始的indexPath      else      {          return sourceIndexPath ;      }  }  10.UIImage與字符串互轉(zhuǎn)[objc] view%20plain copy //圖片轉(zhuǎn)字符串    -(NSString *)UIImageToBase64Str:(UIImage *) image    {        NSData *data = UIImageJPEGRepresentation(image, 1.0f);        NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];        return encodedImageStr;    }    //字符串轉(zhuǎn)圖片    -(UIImage *)Base64StrToUIImage:(NSString *)_encodedImageStr    {        NSData *_decodedImageData   = [[NSData alloc] initWithBase64Encoding:_encodedImageStr];        UIImage *_decodedImage      = [UIImage imageWithData:_decodedImageData];        return _decodedImage;    }  11.當(dāng)有多個(gè)導(dǎo)航控制器時(shí),一次設(shè)置多個(gè)導(dǎo)航控制器[objc] view%20plain copy UINavigationBar *navBar = [UINavigationBar appearance] ;      // 所有導(dǎo)航條顏色都會(huì)改變 -- 一鍵設(shè)置      //navBar.barTintColor = [UIColor yellowColor] ;      [navBar setBackgroundImage:[UIImage imageNamed:@"bg_nav.png"] forBarMetrics:UIBarMetricsDefault] ;  
12.通過(guò)2D仿射函數(shù)實(shí)現(xiàn)小的動(dòng)畫效果(變大縮小) --可用于自定義pageControl中.
[objc] view plain copy 在CODE上查看代碼片[UIView animateWithDuration:0.3 animations:^{  imageView.transform = CGAffineTransformMakeScale(2, 2);  } completion:^(BOOL finished) {  imageView.transform = CGAffineTransformMakeScale(1.0, 1.0);  }];  13.處理標(biāo)簽字符串中的空格,換行,/t(制表符)等[objc] view%20plain copy - (NSString *)replaceStringWithString :(NSMutableString *)string  {      NSString *string1 = [string stringByReplacingOccurrencesOfString:@"/n" withString:@""] ;      NSString *string2 = [string1 stringByReplacingOccurrencesOfString:@" " withString:@""] ;      NSString *string3 = [string2 stringByReplacingOccurrencesOfString:@"/r" withString:@""] ;      NSString *string4 = [string3 stringByReplacingOccurrencesOfString:@"/t" withString:@""] ;      return string4 ;  }  14.UITextField的字?jǐn)?shù)限制[objc] view%20plain copy // viewDidLoad中  [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)             name:@"UITextFieldTextDidChangeNotification" object:myTextField];  [objc] view%20plain copy -(void)textFiledEditChanged:(NSNotification *)obj  {      UITextField *textField = (UITextField *)obj.object;      NSString *toBeString = textField.text;        //獲取高亮部分      UITextRange *selectedRange = [textField markedTextRange];      UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];        // 沒(méi)有高亮選擇的字,則對(duì)已輸入的文字進(jìn)行字?jǐn)?shù)統(tǒng)計(jì)和限制      if (!position)      {          if (toBeString.length > MAX_STARWordS_LENGTH)          {              NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:MAX_STARWORDS_LENGTH];              if (rangeIndex.length == 1)              {                  textField.text = [toBeString substringToIndex:MAX_STARWORDS_LENGTH];              }              else              {                  NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, MAX_STARWORDS_LENGTH)];                  textField.text = [toBeString substringWithRange:rangeRange];              }          }      }   }  15.在ARC工程中導(dǎo)入MRC的類和在MRC工程中導(dǎo)入ARC的類[objc] view%20plain copy // 在ARC工程中導(dǎo)入MRC的類  我們選中工程->選中targets中的工程,然后選中Build Phases->在導(dǎo)入的類后邊加入標(biāo)記 -  fno-objc-arc  // 在MRC工程中導(dǎo)入ARC的類 路徑與上面一致,在該類后面加上標(biāo)記 -fobjc-arc  16.導(dǎo)入Xcode空self.begin_time = dic[@"begin_time"];          self.end_time = dic[@"end_time"];          NSRange range = NSMakeRange(5, 11);            self.time = [[self.begin_time substringWithRange:range] stringByAppendingString:[@" -- "stringByAppendingString:[self.end_time substringWithRange:range]]];  19.網(wǎng)絡(luò)請(qǐng)求圖片[objc] view%20plain copy //    NSURL *url = [NSURL URLWithString:urlString];  //    NSURLRequest *request = [NSURLRequest requestWithURL:url];  //    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];  //    UIImage *image = [UIImage imageWithData:data];        //此種寫法和上面的操作是一致的,都是同步請(qǐng)求數(shù)據(jù)。      UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]];      return image;  20.按照文字計(jì)算高度[objc] view%20plain copy - (void)descHeightWithDesc:(NSString *)desc{        CGRect rect = [desc boundingRectWithSize:CGSizeMake(240, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:self.descLabel.font} context:nil];      //按照文字計(jì)算高度      float textHeight = rect.size.height;        CGRect frame = self.descLabel.frame;      frame.size.height = textHeight;      self.descLabel.frame = frame;    }  21.%20代理的安全保護(hù)【斷是否有代理,和代理是否執(zhí)行了代理方法】[objc] view%20plain copy if (self.delegate && [self.delegate respondsToSelector:@selector(passValueWithArray:)]) {    }  22.%20隱藏手機(jī)的狀態(tài)欄[objc] view%20plain copy -(BOOL)prefersStatusBarHidden {  return YES;  }  23.%20程序的退出【了解】【特別注意】iOS的應(yīng)用程序在應(yīng)用程序內(nèi)部是不允許被退出的,只能通過(guò)連擊兩次HOME鍵的時(shí)候進(jìn)入程序管理界面%20通過(guò)上滑退出。如果在應(yīng)用程序中寫了下面的代碼,那么在提交程序的時(shí)候是不能被審核通過(guò)的。所以下面的代碼是不允許寫的。在這里只是作了解。exit(0);%20//%20只要執(zhí)行這個(gè)語(yǔ)句,程序就會(huì)直接退出

24.%20容器視圖控制器把一個(gè)視圖控制器作為容器視圖控制器,在這個(gè)容器視圖控制器上添加多個(gè)其他視圖控制器,并把其他控制器的視圖添加上來(lái)TableViewController%20*tableViewController%20=%20[[TableViewController%20alloc]%20init];[self%20addChildViewController:tableViewController];%20//%20self在這里就是容器視圖控制器[self.view%20addSubView:tableViewController.tableView];

使用場(chǎng)景:當(dāng)我們某個(gè)視圖控制器要使用多個(gè)子界面,并且多個(gè)子界面的處理事務(wù)的邏輯比較復(fù)雜,我們就可以通過(guò)這種方式將不同的邏輯處理拆分開,在各自的視圖控制器中處理自己的邏輯,而不是所有邏輯都在當(dāng)前視圖控制器中處理。

25.問(wèn)題處理:cell是有重用機(jī)制的,但有時(shí)候,我們的cell是自適應(yīng)高度,但是所有cell的標(biāo)識(shí)都是一個(gè),那么,在重用的時(shí)候會(huì)出現(xiàn)%20有的單元格高,有的單元格矮的情況,和本身想要的frame不匹配,這個(gè)時(shí)候,只需要給cell上面的視圖在懶加載的時(shí)候,重新賦frame值就好了。也就是在if判斷外,再賦值一次frame。(例如,豆瓣項(xiàng)目電影院列表)26.問(wèn)題處理:有時(shí)候self是加在parentViewController(父ViewController)上的,self上面是沒(méi)有navigationController的,但是這時(shí)還想使用self父類的navigationController,那么,此時(shí)需要第二種方法push過(guò)去[objc] view%20plain copy [self.navigationController pushViewController:detailViewController animated:YES];  [self.parentViewController.navigationController pushViewController:detailViewController animated:YES];  27.視圖是否自動(dòng)(只是把第一個(gè)自動(dòng))向下挪64[objc] view%20plain copy self.automaticallyAdjustsScrollViewInsets = NO; // 不讓系統(tǒng)幫咱們把scrollView及其子類的視圖向下調(diào)整64  28.%20懶加載里面的判斷條件(含義)!_imageView%20等同于%20_imageView%20==%20nil_imageView%20等同于%20_imageView%20!=%20nil29.%20什么時(shí)候用宏,什么時(shí)候用變量(宏和變量都方便修改參數(shù)值)如果在一個(gè)方法里面的時(shí)候,用變量如果在多個(gè)方法里面,或者多個(gè)類中,用宏30.%20xib的本質(zhì)是xml文件[objc] view%20plain copy 派生到我的代碼片xib編譯之后生成的是nib文件  
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 博野县| 百色市| 鹤岗市| 岳西县| 祥云县| 剑河县| 巧家县| 昭平县| 黄龙县| 新安县| 平利县| 东辽县| 丘北县| 贞丰县| 湟源县| 保亭| 民丰县| 宿松县| 亚东县| 英德市| 漳平市| 通化县| 宁蒗| 昌乐县| 玉树县| 天峨县| 大理市| 岐山县| 乾安县| 恩平市| 高密市| 达日县| 望都县| 新和县| 武山县| 庄浪县| 剑河县| 镇安县| 八宿县| 城固县| 保康县|