美文网首页
零散记录

零散记录

作者: hanyongwei | 来源:发表于2018-07-06 09:37 被阅读0次

    动画介绍地址

    获取系统当前语言

    
    NSString *currentLanguage = [[NSLocale preferredLanguages] objectAtIndex:0];
    
    NSLog(@"currentlanguage = %@",currentLanguage);
    
    if([currentLanguage containsString:@"zh-Hans"]) {
    
      NSLog(@"zh-Hans简体中文");
    
    }elseif([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样式下,取消区头停滞效果

    
    - (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);
    
      }
    
      elseif(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;
    
     }
    
      returnviewController;
    
    }
    
    

    两种方法删除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];
    
    }
    
    

    打印系统所有已注册的字体名称

    
    - (void)enumerateFont
    
    {
    
        for(NSString*familyNamein[UIFontfamilyNames])
    
        {
    
            NSLog(@"%@",familyName);
    
            NSArray*fontNames = [UIFontfontNamesForFamilyName:familyName];
    
            for(NSString*fontNameinfontNames)
    
            {
    
                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) {
    
        returnnil; /* error */
    
      }
    
      size_tw = CGImageGetWidth(inImage);
    
      size_th = CGImageGetHeight(inImage);
    
      CGRect rect = {{0,0},{w,h}};
    
      CGContextDrawImage(cgctx, rect, inImage);
    
      unsigned char* data = CGBitmapContextGetData (cgctx);
    
      if(data != NULL) {
    
        intoffset = 4*((w*round(point.y))+round(point.x));
    
        intalpha = data[offset];
    
        intred = data[offset+1];
    
        intgreen = data[offset+2];
    
        intblue = 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);
    
      }
    
      returncolor;
    
    }
    
    

    字符串反转

    
    //第一种:
    
    - (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]; 
    
      } 
    
       returnnewString;
    
    }
    
    //第二种:
    
    - (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];            
    
       }]; 
    
       returnreverString;
    
    }
    
    

    禁止锁屏

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

    模态推出透明界面

    
    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跳转到App Store下载应用评分

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

    手动更改iOS状态栏的颜色

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

    判断当前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"];   
    
        } 
    
      } 
    
      returnlaunchImageName;
    
    }
    
    

    iOS在当前屏幕获取第一响应

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

    判断对象是否遵循了某协议

    
    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 intnumOfClasses;
    
      Class *classes = objc_copyClassList(&numOfClasses;);
    
      for(unsigned intci = 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);
    
      returnmySubclasses;
    
    }
    
    

    阿拉伯数字转中文格式

    
    +(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(inti = 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);
    
      returnchinese;
    
    }
    
    

    取消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:^(BOOLfinished) {
    
      [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的字数限制

    
    //在viewDidLoad中注册通知
    
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(textFiledEditChanged:)
    
         name:@"UITextFieldTextDidChangeNotification"object:myTextField];
    
    //实现监听方法
    
    #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];
    
      // 没有高亮选择的字,则对已输入的文字进行字数统计和限制
    
      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];
    
          }
    
        }
    
      }
    
    }
    
    

    相关文章

      网友评论

          本文标题:零散记录

          本文链接:https://www.haomeiwen.com/subject/bukvuftx.html