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

首頁 > 學院 > 開發設計 > 正文

博客筆記總結1

2019-11-09 16:49:08
字體:
來源:轉載
供稿:網友
1.根據漢字字符串獲取該字符串的拼音然后取得首字母(這個我之前寫過博文)
[objc] view plain copy 在CODE上查看代碼片<span style="font-size:18px;">分享資源    漢字轉換為 拼音 獲取首字母  //獲取拼音首字母(傳入漢字字符串, 返回大寫拼音首字母)  /* - (NSString *)firstCharactor:(NSString *)aString {     //轉成了可變字符串     NSMutableString *str = [NSMutableString stringWithString:aString];     //先轉換為帶聲調的拼音     CFStringTransform((CFMutableStringRef)str,NULL, kCFStringTransformMandarinLatin,NO);     //再轉換為不帶聲調的拼音     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] ;      // 內容的自適應高度方法       *  @param CGSize 規定文本顯示的最大范圍          @param options 按照何種設置來計算范圍          @param attributes 文本內容的一些屬性,例如self.tableView.rowHeight = UITableViewAutomaticDimension;      self.tableView.estimatedRowHeight = 150;  3.%20把圖片做成圓形圖標(非常常用)[objc] view%20plain copy self.headIconImageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 40, 40)] ;  self.headIconImageView.layer.cornerRadius = 20 ; // 設置半徑   self.headIconImageView.layer.masksToBounds = YES ; // 邊界是否允許截取  4.%20NSTimer計時器使用實例代碼如下:[objc] view%20plain copy // 第一個參數:多長時間會觸發一次,以秒為單位  // 第二個參數:如果看到函數的參數有target,一般情況下,都用self  // 第三個參數:SEL,需要調用其他的方法,就是每次時鐘被觸發的時候,去執行的方法  // 最多可以帶一個參數,就是時鐘本身  // 第四個參數,暫時不用考慮,設置成nil  // 第五個參數:是否重復,通常會設置YES    _gameTimer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(updateTimer:) userInfo:nil repeats:YES];  a.在時鐘觸發方法中,可以使用sender.fireDate獲取到時鐘被觸發的時間b.注意:使用NSTimer的時候,千萬不要忘記調用invalidate方法關閉時鐘。c.NSTimer可能不會是及時相應觸發時間的,它的執行優先級相對較低,因此,不要使用NSTimer去做實時響應需求較高的周期性操作。5.%20NSNumbera.是數字的NS對象的表達形式,如果要把數字添加到數組或者字典中,必須要進行轉換,同時要使用數組中的數字,還需要轉換成對應的數字。b.要轉換數字可以使用OC提供的包裝方法:@(int)c.要把NSNumber轉換成字符串,需要使用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  {      // 方法鎖,作用為:當多個線程同時調用方法的時候,保證只有一個線程在使用該方法.例如:A和B同時調用defaultSingleton方法,如果A正在使用該方法,那么B就不能調用,直到A使用完成,B才會執行該方法.這個也保證單例對象的唯一性,避免初始化方法被同時多次執行.      @synchronized(self)      {          if (singleton == nil)          {              singleton = [[Singleton alloc] init] ;          }  }          return singleton ;  }  8.隱藏狀態欄%20修改狀態欄風格[objc] view%20plain copy -(UIStatusBarStyle)// tableView可移動  移動完成之后會調用此代理方法  - (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath  {    }    // 移動過程中調用的代理方法 -- 示例為不能跨區移動  /**  *  <#Description#>  *  *  @param tableView  *  @param sourceIndexPath              所要移動單元格的原始位置  *  @param proposedDestinationIndexPath 將要移動到的位置  *  *  @return return value description  */  - (NSIndexPath *)tableView:(UITableView *)tableView targetIndexPathForMoveFromRowAtIndexPath:(NSIndexPath *)sourceIndexPath toProposedIndexPath:(NSIndexPath *)proposedDestinationIndexPath  {      // 移動位置在同一分區      if (sourceIndexPath.section == proposedDestinationIndexPath.section)      {          // 這時允許單元格移動          return proposedDestinationIndexPath ;      }      // 不在同一分區 不讓單元格移動,返回原始的indexPath      else      {          return sourceIndexPath ;      }  }  10.UIImage與字符串互轉[objc] view%20plain copy //圖片轉字符串    -(NSString *)UIImageToBase64Str:(UIImage *) image    {        NSData *data = UIImageJPEGRepresentation(image, 1.0f);        NSString *encodedImageStr = [data base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];        return encodedImageStr;    }    //字符串轉圖片    -(UIImage *)Base64StrToUIImage:(NSString *)_encodedImageStr    {        NSData *_decodedImageData   = [[NSData alloc] initWithBase64Encoding:_encodedImageStr];        UIImage *_decodedImage      = [UIImage imageWithData:_decodedImageData];        return _decodedImage;    }  11.當有多個導航控制器時,一次設置多個導航控制器[objc] view%20plain copy UINavigationBar *navBar = [UINavigationBar appearance] ;      // 所有導航條顏色都會改變 -- 一鍵設置      //navBar.barTintColor = [UIColor yellowColor] ;      [navBar setBackgroundImage:[UIImage imageNamed:@"bg_nav.png"] forBarMetrics:UIBarMetricsDefault] ;  
12.通過2D仿射函數實現小的動畫效果(變大縮小) --可用于自定義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.處理標簽字符串中的空格,換行,/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的字數限制[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];        // 沒有高亮選擇的字,則對已輸入的文字進行字數統計和限制      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工程中導入MRC的類和在MRC工程中導入ARC的類[objc] view%20plain copy // 在ARC工程中導入MRC的類  我們選中工程->選中targets中的工程,然后選中Build Phases->在導入的類后邊加入標記 -  fno-objc-arc  // 在MRC工程中導入ARC的類 路徑與上面一致,在該類后面加上標記 -fobjc-arc  16.導入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.網絡請求圖片[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];        //此種寫法和上面的操作是一致的,都是同步請求數據。      UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]];      return image;  20.按照文字計算高度[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];      //按照文字計算高度      float textHeight = rect.size.height;        CGRect frame = self.descLabel.frame;      frame.size.height = textHeight;      self.descLabel.frame = frame;    }  21.%20代理的安全保護【斷是否有代理,和代理是否執行了代理方法】[objc] view%20plain copy if (self.delegate && [self.delegate respondsToSelector:@selector(passValueWithArray:)]) {    }  22.%20隱藏手機的狀態欄[objc] view%20plain copy -(BOOL)prefersStatusBarHidden {  return YES;  }  23.%20程序的退出【了解】【特別注意】iOS的應用程序在應用程序內部是不允許被退出的,只能通過連擊兩次HOME鍵的時候進入程序管理界面%20通過上滑退出。如果在應用程序中寫了下面的代碼,那么在提交程序的時候是不能被審核通過的。所以下面的代碼是不允許寫的。在這里只是作了解。exit(0);%20//%20只要執行這個語句,程序就會直接退出

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

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

25.問題處理:cell是有重用機制的,但有時候,我們的cell是自適應高度,但是所有cell的標識都是一個,那么,在重用的時候會出現%20有的單元格高,有的單元格矮的情況,和本身想要的frame不匹配,這個時候,只需要給cell上面的視圖在懶加載的時候,重新賦frame值就好了。也就是在if判斷外,再賦值一次frame。(例如,豆瓣項目電影院列表)26.問題處理:有時候self是加在parentViewController(父ViewController)上的,self上面是沒有navigationController的,但是這時還想使用self父類的navigationController,那么,此時需要第二種方法push過去[objc] view%20plain copy [self.navigationController pushViewController:detailViewController animated:YES];  [self.parentViewController.navigationController pushViewController:detailViewController animated:YES];  27.視圖是否自動(只是把第一個自動)向下挪64[objc] view%20plain copy self.automaticallyAdjustsScrollViewInsets = NO; // 不讓系統幫咱們把scrollView及其子類的視圖向下調整64  28.%20懶加載里面的判斷條件(含義)!_imageView%20等同于%20_imageView%20==%20nil_imageView%20等同于%20_imageView%20!=%20nil29.%20什么時候用宏,什么時候用變量(宏和變量都方便修改參數值)如果在一個方法里面的時候,用變量如果在多個方法里面,或者多個類中,用宏30.%20xib的本質是xml文件[objc] view%20plain copy 派生到我的代碼片xib編譯之后生成的是nib文件  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拉萨市| 太康县| 娄烦县| 故城县| 淮安市| 普陀区| 荥阳市| 张掖市| 定西市| 皋兰县| 娱乐| 行唐县| 顺义区| 灵璧县| 绿春县| 义马市| 兴仁县| 呼玛县| 华亭县| 凌源市| 江口县| 沙湾县| 黄陵县| 澎湖县| 凤城市| 龙游县| 江阴市| 太湖县| 博客| 剑川县| 周宁县| 贞丰县| 罗田县| 喀喇沁旗| 徐汇区| 额敏县| 寿光市| 龙里县| 江安县| 仙桃市| 敦化市|