zoukankan      html  css  js  c++  java
  • [iOS]拾遗补阙

    一、AFNetworking POST纯字符串

    修改位置AFURLRequestSerialization

    修改前

    NSString * AFQueryStringFromParameters(NSDictionary *parameters) {
        NSMutableArray *mutablePairs = [NSMutableArray array];
        for (AFQueryStringPair *pair in AFQueryStringPairsFromDictionary(parameters)) {
            [mutablePairs addObject:[pair URLEncodedStringValue]];
        }
    
        return [mutablePairs componentsJoinedByString:@"&"];
    }

    修改后

    NSString * AFQueryStringFromParameters(NSDictionary *parameters) {
        if ([parameters isKindOfClass:[NSString class]])
            return (NSString *)parameters;
        
        NSMutableArray *mutablePairs = [NSMutableArray array];
        for (AFQueryStringPair *pair in AFQueryStringPairsFromDictionary(parameters)) {
            [mutablePairs addObject:[pair URLEncodedStringValue]];
        }
    
        return [mutablePairs componentsJoinedByString:@"&"];
    }

    二、查找一个字符串中的多个相同子字符串

    NSString *str = @"14 28 62 24 3 46 99 73 10 51 0 95 34 58 50 33 56 23 97 82 83 8 94 1 17 7 19 96 9 54";
    NSString *searchString = @"1";
    
    NSRange searchRange = NSMakeRange(0, [str length]);
    NSRange range;
    
    while ((range = [str rangeOfString:searchString options:0 range:searchRange]).location != NSNotFound)
    {
        NSLog(@"%@",NSStringFromRange(range));
        
        searchRange = NSMakeRange(NSMaxRange(range), [str length] - NSMaxRange(range));
    }

    三、UITextField限制字数

    - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
    {
        NSInteger existedLength = textField.text.length;
        NSInteger selectedLength = range.length;
        NSInteger replaceLength = string.length;
        
        if (existedLength - selectedLength + replaceLength > 4)
            return NO;
        
        return YES;
    }

     四、枚举数组元素

    [array enumerateObjectsUsingBlock:^(id  _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        
    }];

     五、为UILabel添加图片

    NSTextAttachment *attachment = [[NSTextAttachment alloc] init];
    attachment.image = [UIImage imageNamed:@"image"];
    attachment.bounds = CGRectMake(0, 0, 15, 15);
    
    NSMutableAttributedString *string = [[NSMutableAttributedString alloc] init];
    [string appendAttributedString:[NSAttributedString attributedStringWithAttachment:attachment]];
    [string appendAttributedString:[[NSAttributedString alloc] initWithString:@"string"]];
    
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 100, 100, 30)];
    label.attributedText = string;
    [self.view addSubview:label];

     六、自适应屏幕大小

    view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

     七、判断推送是否打开

    BOOL registered = [[UIApplication sharedApplication] isRegisteredForRemoteNotifications];

     八、UIView转UIImage

    - (UIImage *)viewToImage:(UIView *)view
    {
        UIImage *image = [[UIImage alloc] init];
        UIGraphicsBeginImageContextWithOptions(view.frame.size, YES, [UIScreen mainScreen].scale);// 区域 透明 屏幕密度
        [view.layer renderInContext:UIGraphicsGetCurrentContext()];
        image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        
        return image;
    }

     九、跳转App Store

    NSURL *url = [NSURL URLWithString:@"itms-apps://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=xxx"];
    [[UIApplication sharedApplication] openURL:url];

     十、UIButton垂直布局

    [button setTitleEdgeInsets:UIEdgeInsetsMake(40 ,-button.imageView.frame.size.width, 0, 0)];
    [button setImageEdgeInsets:UIEdgeInsetsMake(-20, 0, 0, -button.titleLabel.bounds.size.width)];

     十一、解决UITableView在无导航栏时顶部留白

    if (@available(iOS 11.0, *))
        self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
    else
        self.automaticallyAdjustsScrollViewInsets = NO;

     十二、SDWebImage支持中文路径

    [image sd_setImageWithURL:[NSURL URLWithString:[url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]] forState:UIControlStateNormal];
  • 相关阅读:
    【dp】船
    【dp】PKU 1952 buy low,buy lower
    【dp】合唱队形
    【dp】导弹拦截
    【dfs】POJ1321 棋盘问题
    工程师工作与学习的模式
    如何进行大规模在线数据迁移(来自Stripe公司的经验)
    Laravel事件监听器listener与事件订阅者Subscriber的区别
    微信小程序时间处理问题
    [翻译] Facebook HHVM 团队封闭开发三周成果展
  • 原文地址:https://www.cnblogs.com/EverNight/p/10008190.html
Copyright © 2011-2022 走看看