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

首頁 > 系統(tǒng) > iOS > 正文

值得收藏的iOS開發(fā)常用代碼塊

2019-10-21 18:51:33
字體:
供稿:網(wǎng)友

遍歷可變數(shù)組的同時刪除數(shù)組元素

NSMutableArray *copyArray = [NSMutableArray arrayWithArray:array];  NSString *str1 = @“zhangsan”; for (AddressPerson *perName in copyArray) {   if ([[perName name] isEqualToString:str1]) {     [array removeObject:perName];   } } 

獲取系統(tǒng)當(dāng)前語言

NSString *currentLanguage = [[NSLocale preferredLanguages] objectAtIndex:0];NSLog(@"currentlanguage = %@",currentLanguage);if ([currentLanguage containsString:@"zh-Hans"]) {  NSLog(@"zh-Hans簡體中文");}else if ([currentLanguage containsString:@"zh-Hant"]) {  NSLog(@"zh-Hant繁體中文");}

UITableView的Group樣式下頂部空白處理

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0.1)];self.tableView.tableHeaderView = view;

UITableView的plain樣式下,取消區(qū)頭停滯效果

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{  CGFloat sectionHeaderHeight = sectionHead.height;  if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView;.contentOffset.y>=0)  {    scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);  }  else if(scrollView.contentOffset.y>=sectionHeaderHeight)  {    scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);  }}

獲取某個view所在的控制器

- (UIViewController *)viewController{ UIViewController *viewController = nil;  UIResponder *next = self.nextResponder; while (next) {  if ([next isKindOfClass:[UIViewController class]])  {   viewController = (UIViewController *)next;      break;    }    next = next.nextResponder;  }   return viewController;}

兩種方法刪除NSUserDefaults所有記錄

//方法一NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];//方法二- (void)resetDefaults{  NSUserDefaults * defs = [NSUserDefaults standardUserDefaults];  NSDictionary * dict = [defs dictionaryRepresentation];  for (id key in dict)  {    [defs removeObjectForKey:key];  }  [defs synchronize];}

打印系統(tǒng)所有已注冊的字體名稱

void enumerateFonts(){  for(NSString *familyName in [UIFont familyNames])  {    NSLog(@"%@",familyName);            NSArray *fontNames = [UIFont fontNamesForFamilyName:familyName];        for(NSString *fontName in fontNames)    {      NSLog(@"/t|- %@",fontName);    }  }}

獲取圖片某一點的顏色

- (UIColor*) getPixelColorAtLocation:(CGPoint)point inImage:(UIImage *)image{  UIColor* color = nil;  CGImageRef inImage = image.CGImage;  CGContextRef cgctx = [self createARGBBitmapContextFromImage:inImage];  if (cgctx == NULL) {    return nil; /* error */  }  size_t w = CGImageGetWidth(inImage);  size_t h = CGImageGetHeight(inImage);  CGRect rect = {{0,0},{w,h}};  CGContextDrawImage(cgctx, rect, inImage);  unsigned char* data = CGBitmapContextGetData (cgctx);  if (data != NULL) {    int offset = 4*((w*round(point.y))+round(point.x));    int alpha = data[offset];    int red = data[offset+1];    int green = data[offset+2];    int blue = data[offset+3];    color = [UIColor colorWithRed:(red/255.0f) green:(green/255.0f) blue:         (blue/255.0f) alpha:(alpha/255.0f)];  }  CGContextRelease(cgctx);  if (data) {    free(data);  }  return color;}

字符串反轉(zhuǎn)

//第一種:- (NSString *)reverseWordsInString:(NSString *)str{    NSMutableString *newString = [[NSMutableString alloc] initWithCapacity:str.length];  for (NSInteger i = str.length - 1; i >= 0 ; i --)  {    unichar ch = [str characterAtIndex:i];        [newString appendFormat:@"%c", ch];    }     return newString;}//第二種:- (NSString*)reverseWordsInString:(NSString*)str{     NSMutableString *reverString = [NSMutableString stringWithCapacity:str.length];     [str enumerateSubstringsInRange:NSMakeRange(0, str.length) options:NSStringEnumerationReverse | NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {      [reverString appendString:substring];                }];     return reverString;}

禁止鎖屏

//第一種[UIApplication sharedApplication].idleTimerDisabled = YES;//第二種[[UIApplication sharedApplication] setIdleTimerDisabled:YES];

 模態(tài)推出透明界面

UIViewController *vc = [[UIViewController alloc] init];UINavigationController *na = [[UINavigationController alloc] initWithRootViewController:vc];if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0){   na.modalPresentationStyle = UIModalPresentationOverCurrentContext;}else{   self.modalPresentationStyle=UIModalPresentationCurrentContext;}[self presentViewController:na animated:YES completion:nil];

iOS跳轉(zhuǎn)到App Store下載應(yīng)用評分

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id=APPID"]];

手動更改iOS狀態(tài)欄的顏色

- (void)setStatusBarBackgroundColor:(UIColor *)color{  UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];  if ([statusBar respondsToSelector:@selector(setBackgroundColor:)])  {    statusBar.backgroundColor = color;    }}

判斷當(dāng)前ViewController是push還是present的方式顯示

NSArray *viewcontrollers=self.navigationController.viewControllers;if (viewcontrollers.count > 1){  if ([viewcontrollers objectAtIndex:viewcontrollers.count - 1] == self)  {    //push方式    [self.navigationController popViewControllerAnimated:YES];  }}else{  //present方式  [self dismissViewControllerAnimated:YES completion:nil];}

獲取實際使用的LaunchImage圖片

- (NSString *)getLaunchImageName{  CGSize viewSize = self.window.bounds.size;  // 豎屏    NSString *viewOrientation = @"Portrait";   NSString *launchImageName = nil;    NSArray* imagesDict = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"UILaunchImages"];  for (NSDictionary* dict in imagesDict)  {    CGSize imageSize = CGSizeFromString(dict[@"UILaunchImageSize"]);    if (CGSizeEqualToSize(imageSize, viewSize) && [viewOrientation isEqualToString:dict[@"UILaunchImageOrientation"]])    {      launchImageName = dict[@"UILaunchImageName"];        }    }    return launchImageName;}

iOS在當(dāng)前屏幕獲取第一響應(yīng)

UIWindow * keyWindow = [[UIApplication sharedApplication] keyWindow];UIView * firstResponder = [keyWindow performSelector:@selector(firstResponder)];

判斷對象是否遵循了某協(xié)議

if ([self.selectedController conformsToProtocol:@protocol(RefreshPtotocol)]){   [self.selectedController performSelector:@selector(onTriggerRefresh)];}

判斷view是不是指定視圖的子視圖
BOOL isView = [textView isDescendantOfView:self.view]; 

NSArray 快速求總和 最大值 最小值 和 平均值

NSArray *array = [NSArray arrayWithObjects:@"2.0", @"2.3", @"3.0", @"4.0", @"10", nil];CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue];CGFloat avg = [[array valueForKeyPath:@"@avg.floatValue"] floatValue];CGFloat max =[[array valueForKeyPath:@"@max.floatValue"] floatValue];CGFloat min =[[array valueForKeyPath:@"@min.floatValue"] floatValue];NSLog(@"%f/n%f/n%f/n%f",sum,avg,max,min);

修改UITextField中Placeholder的文字顏色
[textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"]; 

獲取一個類的所有子類

+ (NSArray *) allSubclasses{  Class myClass = [self class];  NSMutableArray *mySubclasses = [NSMutableArray array];  unsigned int numOfClasses;  Class *classes = objc_copyClassList(&numOfClasses;);  for (unsigned int ci = 0; ci < numOfClasses; ci++)  {    Class superClass = classes[ci];    do{      superClass = class_getSuperclass(superClass);    } while (superClass && superClass != myClass);    if (superClass)    {      [mySubclasses addObject: classes[ci]];    }  }  free(classes);  return mySubclasses;}

阿拉伯?dāng)?shù)字轉(zhuǎn)中文格式

+(NSString *)translation:(NSString *)arebic{   NSString *str = arebic;  NSArray *arabic_numerals = @[@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"0"];  NSArray *chinese_numerals = @[@"一",@"二",@"三",@"四",@"五",@"六",@"七",@"八",@"九",@"零"];  NSArray *digits = @[@"個",@"十",@"百",@"千",@"萬",@"十",@"百",@"千",@"億",@"十",@"百",@"千",@"兆"];  NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:chinese_numerals forKeys:arabic_numerals];  NSMutableArray *sums = [NSMutableArray array];  for (int i = 0; i < str.length; i ++) {    NSString *substr = [str substringWithRange:NSMakeRange(i, 1)];    NSString *a = [dictionary objectForKey:substr];    NSString *b = digits[str.length -i-1];    NSString *sum = [a stringByAppendingString:b];    if ([a isEqualToString:chinese_numerals[9]])    {      if([b isEqualToString:digits[4]] || [b isEqualToString:digits[8]])      {        sum = b;        if ([[sums lastObject] isEqualToString:chinese_numerals[9]])        {          [sums removeLastObject];        }      }else      {        sum = chinese_numerals[9];      }      if ([[sums lastObject] isEqualToString:sum])      {        continue;      }    }    [sums addObject:sum];  }  NSString *sumStr = [sums componentsJoinedByString:@""];  NSString *chinese = [sumStr substringToIndex:sumStr.length-1];  NSLog(@"%@",str);  NSLog(@"%@",chinese);  return chinese;}

取消UICollectionView的隱式動畫

//方法一[UIView performWithoutAnimation:^{  [collectionView reloadItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:index inSection:0]]];}];//方法二[UIView animateWithDuration:0 animations:^{  [collectionView performBatchUpdates:^{    [collectionView reloadItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:index inSection:0]]];  } completion:nil];}];//方法三[UIView setAnimationsEnabled:NO];[self.trackPanel performBatchUpdates:^{  [collectionView reloadItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:index inSection:0]]];} completion:^(BOOL finished) {  [UIView setAnimationsEnabled:YES];}];

判斷郵箱格式是否正確的代碼

-(BOOL)isValidateEmail:(NSString *)email  {  NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+//.[A-Za-z]{2,4}";  NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@",emailRegex];  return [emailTest evaluateWithObject:email];  }

iOS中UITextField的字數(shù)限制

//在viewDidLoad中注冊<UITextFieldTextDidChangeNotification>通知[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)      name:@"UITextFieldTextDidChangeNotification" object:myTextField];//實現(xiàn)監(jiān)聽方法#pragma mark - Notification Method-(void)textFieldEditChanged:(NSNotification *)obj{  UITextField *textField = (UITextField *)obj.object;  NSString *toBeString = textField.text;  //獲取高亮部分  UITextRange *selectedRange = [textField markedTextRange];  UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0];  // 沒有高亮選擇的字,則對已輸入的文字進行字數(shù)統(tǒng)計和限制  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];      }    }  }}

小伙伴們,今天就分享到這里,下期更精彩!


注:相關(guān)教程知識閱讀請移步到IOS開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁津县| 卢湾区| 阳城县| 张家港市| 松滋市| 宣威市| 霞浦县| 永寿县| 卢氏县| 且末县| 柘城县| 东光县| 洪江市| 福州市| 缙云县| 固始县| 信丰县| 且末县| 岳阳县| 定远县| 望都县| 酒泉市| 孟州市| 白城市| 自贡市| 洞头县| 浏阳市| 阿克| 务川| 保定市| 五台县| 土默特右旗| 蓝山县| 屯昌县| 波密县| 丰顺县| 三原县| 峨边| 乐清市| 安达市| 枣阳市|