亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

博客筆記總結1

2019-11-09 17:49:49
字體:
來源:轉載
供稿:網友
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文件  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91中文精品字幕在线视频| 国产成人高潮免费观看精品| 亚洲欧美国产制服动漫| 日韩中文娱乐网| 亚洲精品丝袜日韩| 91免费版网站入口| 日本精品久久久久久久| 久久精品久久久久| 欧美精品免费在线观看| 伊人伊人伊人久久| 国产激情综合五月久久| 91精品国产高清| 97碰碰碰免费色视频| 91香蕉嫩草影院入口| 成人国产在线激情| 尤物精品国产第一福利三区| 久久全球大尺度高清视频| 亚洲欧美日韩国产精品| 久久久国产视频91| 欧美富婆性猛交| 久久久综合av| 国产精品白嫩美女在线观看| 国产日韩精品综合网站| 成人欧美一区二区三区黑人| 韩国国内大量揄拍精品视频| 国产91免费观看| 亚洲日韩欧美视频一区| 91久久综合亚洲鲁鲁五月天| 国产视频自拍一区| 国产精品一区二区电影| 欧美性xxxxxxxxx| 久久精品国产成人精品| 国产精品极品美女在线观看免费| 久久亚洲一区二区三区四区五区高| 伊人男人综合视频网| 热99久久精品| 91免费人成网站在线观看18| 中文字幕av一区中文字幕天堂| 欧美精品激情在线观看| 丝袜美腿精品国产二区| 欧美日韩亚洲一区二| 亚洲精品国产品国语在线| 欧美激情精品久久久久久变态| 国产精品v片在线观看不卡| 国产精品精品久久久| 91av在线免费观看视频| 5566成人精品视频免费| 亚洲女人被黑人巨大进入| 欧美理论电影在线观看| 国产精品扒开腿爽爽爽视频| 久久久久国产精品一区| 欧美日韩爱爱视频| 久久亚洲国产精品| 97在线视频免费观看| 欧洲永久精品大片ww免费漫画| 日韩av片免费在线观看| 国产精品偷伦一区二区| 中文字幕亚洲自拍| 国产精品1区2区在线观看| 久久99青青精品免费观看| 国产精品美腿一区在线看| 日韩禁在线播放| 国产亚洲欧美视频| 欧美肥婆姓交大片| 国产精品久久久久91| 欧美最顶级的aⅴ艳星| 成人国内精品久久久久一区| 国产在线精品一区免费香蕉| 国产精品一区二区电影| 日韩av在线网址| 国内免费精品永久在线视频| 久久精品亚洲国产| 尤物yw午夜国产精品视频明星| 欧美激情精品久久久久久久变态| 国内成人精品视频| 国产精品手机播放| 亚洲激情成人网| 久久久av网站| 黑人巨大精品欧美一区二区一视频| 国产日韩精品在线播放| 日韩电影网在线| 97色在线播放视频| 亚洲免费av网址| 欧美中文在线视频| 亚洲精品视频网上网址在线观看| 91亚洲精品久久久久久久久久久久| 欧美疯狂xxxx大交乱88av| 57pao国产精品一区| 日韩av免费在线播放| 精品久久久久久久久中文字幕| 久久久久久久久久久免费精品| 日av在线播放中文不卡| 国自产精品手机在线观看视频| 国产精品高清网站| 国外成人性视频| 成人综合网网址| 一本大道香蕉久在线播放29| 欧美视频不卡中文| 国产日韩欧美在线视频观看| 一本色道久久综合狠狠躁篇怎么玩| 日韩欧美国产网站| 成人看片人aa| 国产精品7m视频| 久久视频在线看| 欧美亚洲视频在线观看| 欧美天堂在线观看| 欧美大全免费观看电视剧大泉洋| 亚洲精品视频二区| 欧美精品免费在线观看| 最近2019中文字幕mv免费看| 欧美激情一二区| 久久久视频在线| 久久视频这里只有精品| 91沈先生在线观看| 国精产品一区一区三区有限在线| 成人欧美一区二区三区黑人| 亚洲午夜久久久影院| 精品日本高清在线播放| 最近中文字幕日韩精品| 亚洲天堂网在线观看| 欧美极品美女视频网站在线观看免费| 久久99精品国产99久久6尤物| 日本不卡免费高清视频| 国产成人福利网站| 日韩国产在线看| 91九色视频在线| 国模视频一区二区三区| 国产一区二中文字幕在线看| 一本一本久久a久久精品综合小说| 亚洲人成伊人成综合网久久久| 日韩av在线一区| 欧美黑人狂野猛交老妇| 国产精品黄页免费高清在线观看| 国产欧美一区二区三区久久| 欧美贵妇videos办公室| 久久精品国产v日韩v亚洲| 久久精品99无色码中文字幕| 日本久久精品视频| 国产精品日韩在线| 国产69精品99久久久久久宅男| 日韩精品视频在线播放| 久久97精品久久久久久久不卡| xxxxx91麻豆| 久久不射电影网| 亚洲在线第一页| 久久久91精品国产| 国产精品福利网站| 亚洲天天在线日亚洲洲精| 国内精品视频一区| 5566日本婷婷色中文字幕97| 精品国产网站地址| 欧美二区乱c黑人| 成人欧美一区二区三区黑人孕妇| 欧美成人剧情片在线观看| 性色av一区二区三区红粉影视| 97人洗澡人人免费公开视频碰碰碰| 欧美激情videos| 欧美在线欧美在线| 欧美精品久久久久| 国产欧美日韩中文字幕在线| 久久深夜福利免费观看| 中文字幕日韩精品在线| 久久精视频免费在线久久完整在线看| 精品动漫一区二区|