• iOS小技巧3


    将颜色合成图片
    
    将颜色合成图片
    +(UIImage *)imageWithColor:(UIColor *)color
    {
        CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
        UIGraphicsBeginImageContext(rect.size);
        CGContextRef context = UIGraphicsGetCurrentContext();
        
        CGContextSetFillColorWithColor(context, [color CGColor]);
        CGContextFillRect(context, rect);
        
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return image;
    }
    navigationController 设置title 颜色
    
        [self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                                         [UIColor whiteColor], UITextAttributeTextColor,
                                                                         nil, UITextAttributeTextShadowColor,
                                                                         [NSValue valueWithUIOffset:UIOffsetMake(0, 0)], UITextAttributeTextShadowOffset,
                                                                         [UIFont fontWithName:@"Arial-Bold" size:0.0], UITextAttributeFont,
                                                                         nil]];
    设置全局navigation barbuttonitem 
    
    #pragma mark 设置全局navigation barbuttonitem 
    -(void)setNaviBarButtonItemImage:(NSString *)imageName andX:(NSInteger)x andY:(NSInteger)y andW:(NSInteger)w andH:(NSInteger)h andTitle:(NSString *)title andSel:(SEL)sel andLOrR:(NSString *)lOr andTitleColor:(UIColor *)color{ 
        
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
        btn.frame =CGRectMake(x,y,w,h); 
        
        [btn setTitle:title forState:UIControlStateNormal]; 
        
        if (imageName.length==0 && title.length==0) { 
            
        } else if (imageName.length==0 && title.length!=0) { 
            [btn setBackgroundColor:[UIColor clearColor]]; 
            [btn setTitleColor:color forState:UIControlStateNormal]; 
        }else if(imageName.length!=0 && title.length==0){ 
            UIImage *image = [UIImage imageNamed:imageName]; 
            [btn setImage:image forState:UIControlStateNormal]; 
        }else if(imageName.length!=0 && title.length!=0){ 
            UIImage *image = [UIImage imageNamed:imageName]; 
            [btn setBackgroundImage:image forState:UIControlStateNormal]; 
            [btn setBackgroundColor:[UIColor clearColor]]; 
            [btn setTitleColor:color forState:UIControlStateNormal]; 
        } 
        
        
        [btn addTarget: self action:sel forControlEvents: UIControlEventTouchUpInside]; 
        UIBarButtonItem *bBtn = [[UIBarButtonItem alloc]initWithCustomView:btn]; 
        
        if ([lOr isEqualToString:@"left"]) { 
            [self.navigationItem setLeftBarButtonItem:bBtn]; 
        }else{ 
            [self.navigationItem setRightBarButtonItem:bBtn]; 
        } 
    }
    设置导航条标题的颜色
    
    [navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];
    计算文字的Size
    
    /**
    
     *  计算文字尺寸
    
     *  @param text    需要计算尺寸的文字
    
     *  @param font    文字的字体
    
     *  @param maxSize 文字的最大尺寸
    
     */
    
    - (CGSize)sizeWithText:(NSString *)text font:(UIFont *)font maxSize:(CGSize)maxSize
    
    {
    
        NSDictionary *attrs = @{NSFontAttributeName : font};
    
        return [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
    
    }
    两种方法删除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];
    }
    设置Label行间距
    
    设置label的行间距,计算高度
    -(void)fuwenbenLabel:(UILabel *)labell FontNumber:(id)font AndLineSpacing:(float)lineSpacing
    {
        //富文本设置文字行间距
        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];
        paragraphStyle.lineSpacing = lineSpacing;
        
        NSDictionary *attributes = @{ NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle};
        labell.attributedText = [[NSAttributedString alloc]initWithString:labell.text attributes:attributes];
    }
    
     //获取设置文本间距以后的高度
                CGRect huiDaSize = [cell.fabiaoHuifuContentLabel.attributedText boundingRectWithSize:CGSizeMake(276, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil];
    一行代码创建AlertView,支持多个参数
    
    一行代码创建AlertView,支持多个参数
    //
    //  UIAlertView+Additions.h
    //
    //
    //  Created by Jueying on 15/1/15.
    //  Copyright (c) 2015年 Jueying. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    typedef void(^UIAlertViewCallBackBlock)(NSInteger buttonIndex);
    
    @interface UIAlertView (Additions) <UIAlertViewDelegate>
    
    @property (nonatomic, copy) UIAlertViewCallBackBlock alertViewCallBackBlock;
    
    + (void)alertWithCallBackBlock:(UIAlertViewCallBackBlock)alertViewCallBackBlock title:(NSString *)title message:(NSString *)message  cancelButtonName:(NSString *)cancelButtonName otherButtonTitles:(NSString *)otherButtonTitles, ...;
    
    @end
    
    //
    //  UIAlertView+Additions.m
    //
    //
    //  Created by Jueying on 15/1/15.
    //  Copyright (c) 2015年 Jueying. All rights reserved.
    //
    
    #import "UIAlertView+Additions.h"
    #import <objc/runtime.h>
    
    static void* UIAlertViewKey = @"UIAlertViewKey";
    
    @implementation UIAlertView (Additions)
    
    + (void)alertWithCallBackBlock:(UIAlertViewCallBackBlock)alertViewCallBackBlock title:(NSString *)title message:(NSString *)message  cancelButtonName:(NSString *)cancelButtonName otherButtonTitles:(NSString *)otherButtonTitles, ... {
        
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title message:message delegate:nil cancelButtonTitle:cancelButtonName otherButtonTitles: otherButtonTitles, nil];
        NSString *other = nil;
        va_list args;
        if (otherButtonTitles) {
            va_start(args, otherButtonTitles);
            while ((other = va_arg(args, NSString*))) {
                [alert addButtonWithTitle:other];
            }
            va_end(args);
        }
        alert.delegate = alert;
        [alert show];
        alert.alertViewCallBackBlock = alertViewCallBackBlock;
    }
    
    
    - (void)setAlertViewCallBackBlock:(UIAlertViewCallBackBlock)alertViewCallBackBlock {
        
        [self willChangeValueForKey:@"callbackBlock"];
        objc_setAssociatedObject(self, &UIAlertViewKey;, alertViewCallBackBlock, OBJC_ASSOCIATION_COPY);
        [self didChangeValueForKey:@"callbackBlock"];
    }
    
    - (UIAlertViewCallBackBlock)alertViewCallBackBlock {
        
        return objc_getAssociatedObject(self, &UIAlertViewKey;);
    }
    
    - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
        
        if (self.alertViewCallBackBlock) {
            self.alertViewCallBackBlock(buttonIndex);
        }
    }
    
    @end
    一段文字设置多种字体颜色
    
    给定range和需要设置的颜色,就可以给一段文字设置多种不同的字体颜色,使用方法如下: 
    [self fuwenbenLabel:contentLabel FontNumber:[UIFont systemFontOfSize:15] AndRange:NSMakeRange(6, 1) AndColor:RGBACOLOR(34, 150, 253, 1)];
    //设置不同字体颜色
    -(void)fuwenbenLabel:(UILabel *)labell FontNumber:(id)font AndRange:(NSRange)range AndColor:(UIColor *)vaColor
    {
        NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:labell.text];
        
        //设置字号
        [str addAttribute:NSFontAttributeName value:font range:range];
        
        //设置文字颜色
        [str addAttribute:NSForegroundColorAttributeName value:vaColor range:range];
        
        labell.attributedText = str;
    }
    隐藏状态栏
    
    -(void)viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
        [[UIApplication sharedApplication] setStatusBarHidden:NO];
        
    }
    -(void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        [[UIApplication sharedApplication] setStatusBarHidden:YES];
    }
    ScaleTableView-头部图片可伸缩的TableView
    
    很多社交App中都有这样的设计。 列表顶部是一张大图,大图可以随着列表的下拉而放大。本Demo实现了这个功能。
    //
    //  ViewController.m
    //  ScaleTableView
    //
    //  Created by ShawnPan on 15/3/25.
    //  Mail : developerpans@163.com
    //  Copyright (c) 2015年 ShawnPan. All rights reserved.
    //
    
    #import "ViewController.h"
    #define Imgwidth 828
    #define Imgheight 589
    #define ScaleImageViewHeight ([UIScreen mainScreen].bounds.size.width*Imgheight/Imgwidth)
    @interface ViewController ()<UITableViewDelegate,UITableViewDataSource,UIScrollViewDelegate>
    @property (strong, nonatomic) IBOutlet UIImageView *scaleImageView;
    @property (weak, nonatomic) IBOutlet UITableView *tableView;
    @property (strong, nonatomic) IBOutlet UIImageView *noScaleImage;
    @property (strong, nonatomic) IBOutlet UILabel *nicknameLabel;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        self.tableView.delegate = self;
        self.tableView.dataSource = self;
        
    }
    - (void)viewWillAppear:(BOOL)animated
    {
        self.tableView.contentInset = UIEdgeInsetsMake(ScaleImageViewHeight, 0, 0, 0);
        self.scaleImageView.frame = CGRectMake(0, -ScaleImageViewHeight, self.view.frame.size.width, ScaleImageViewHeight);
        [self.tableView addSubview:self.scaleImageView];
        self.noScaleImage.frame = CGRectMake(20, -50, 48, 48);
        [self.tableView addSubview:self.noScaleImage];
        self.nicknameLabel.frame = CGRectMake(88, -42, 80, 30);
        [self.tableView addSubview:self.nicknameLabel];
    }
    
    #pragma - mark UIScrollView Delegate
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
       CGFloat y = scrollView.contentOffset.y;
        if (y < -ScaleImageViewHeight)
        {
            CGRect frame = self.scaleImageView.frame;
            frame.size.height = -y;
            frame.origin.y = y;
            self.scaleImageView.frame = frame;
        }
    }
    
    #pragma - mark UITableView DataSource
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return 20;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
        cell.textLabel.text = [@(indexPath.row) stringValue];
        return cell;
    }
    @end
    //将状态栏文字颜色变成黑色
    -(void)viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
        if (is_IOS_7) {//更改时间颜色
            [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
        }
    }
    
    -(void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        
        if (is_IOS_7) {//更改时间颜色
            [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
        }
    }
    在tabbar上添加小红点
    
    在tabbar上添加类似于badgevalue功能的小红点。 
    只需要知道tabbar的下标 
    使用- (void)showBadgeOnItemIndex:(int)index  
    和 - (void)hideBadgeOnItemIndex:(int)index进行显示和隐藏 
    使用方法如下:[self.tabBarController.tabBar showBadgeOnItemIndex:0];
    #import "UITabBar+badge.h"
    
    #define TabbarItemNums 4.0    //tabbar的数量
    
    
    @implementation UITabBar (badge)
    
    - (void)showBadgeOnItemIndex:(int)index{
        
        [self removeBadgeOnItemIndex:index];
    
        UIView *badgeView = [[UIView alloc]init];
        
        badgeView.tag = 888 + index;
        
        badgeView.layer.cornerRadius = 5;
        
        badgeView.backgroundColor = [UIColor redColor];
        
        CGRect tabFrame = self.frame;
        
        float percentX = (index +0.6) / TabbarItemNums;
        
        CGFloat x = ceilf(percentX * tabFrame.size.width);
        
        CGFloat y = ceilf(0.1 * tabFrame.size.height);
        
        badgeView.frame = CGRectMake(x, y, 10, 10);
        
        [self addSubview:badgeView];
        
    }
    
    - (void)hideBadgeOnItemIndex:(int)index{
        
        [self removeBadgeOnItemIndex:index];
        
    }
    
    - (void)removeBadgeOnItemIndex:(int)index{
        
        for (UIView *subView in self.subviews) {
            
            if (subView.tag == 888+index) {
                
                [subView removeFromSuperview];
                
            }
        }
    }
    
    @end
    获取一个类的所有子类
    
    通过objc_copyClassList获取所有类,并通过class_getSuperclass来判断那类型继承于该类
    + (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;
    }
    类似广告的文字循环滚动
    
    -(void)viewDidLoad
    {
        timer = [[NSTimer alloc] init];
    
          mainsco = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
            mainsco.backgroundColor = [UIColor clearColor];
            [bgView addSubview:mainsco];
            //显示广告内容
            noticeLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
            noticeLabel.numberOfLines = 0;
            noticeLabel.font = [UIFont systemFontOfSize:13.0f];
            noticeLabel.backgroundColor = [UIColor clearColor];
            [mainsco addSubview:noticeLabel];
    
      noticeLabel.text =[dic valueForKey:@"Bulletin"];
    
        noticeSize = [ [dic valueForKey:@"Bulletin"] sizeWithFont:[UIFont systemFontOfSize:13.0f] constrainedToSize:CGSizeMake(180, 20000000)]; 
    //所有文字显示在一行所占的高度
        size1 = [[dic valueForKey:@"Bulletin"] sizeWithFont:[UIFont systemFontOfSize:13.0f]];
       mainsco.contentSize = CGSizeMake(180, noticeSize.height);
        mainsco.showsVerticalScrollIndicator = NO;
    //根据文字的多少设置label的宽高,但底层的scrollview只显示一行内容的高度
        noticeLabel.frame = CGRectMake(0, 0, 180, noticeSize.height);
        
        mainsco.frame =CGRectMake(116, 77, 180, size1.height);
        if (noticeSize.height>size1.height)
        {
        //如果文字大于一行就开始滚动,否则停止timer
              timer =  [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(time) userInfo:self repeats:YES];
         
        }else{
            [timer invalidate];
        }
    }
    //滚动的方法
    -(void)time
    {
        //oldy用来记录上一次scrollview滚动的位置
        mainsco.contentOffset = CGPointMake(0, oldy);
        if (oldy>noticeSize.height-1) {
            oldy = 0;
        }else
            oldy++;//设置每次滚动的高度,即几个像素
    }
    分组列表头部空白处理
    
    在viewWillAppear里面添加如下代码:
    //分组列表头部空白处理
        CGRect frame = myTableView.tableHeaderView.frame;
        frame.size.height = 0.1;
        UIView *headerView = [[UIView alloc] initWithFrame:frame];
        [myTableView setTableHeaderView:headerView];
    阿拉伯数字转化为汉语数字
    +(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;
    }
    切割字符串工具。。
    
    字符串~`!@#$%^&*()_-+={}[]|\:;"'<,>.?/ 打印结果为 @"~",@"`",@"!",@"@",@"#",@"$",@"%",@"^",@"&",@"*",@"(",@")",@"_",@"-",@"+",@"=",@"{",@"}",@"[",@"]",@"|",@"",@":",@";",@""",@"'",@"<",@",",@">",@".",@"?",@"/"
    // QWERTYUIOPASDFGHJKLZXCVBNM
        NSMutableString *str = [NSMutableString stringWithString:@"~`!@#$%^&*()_-+={}[]|\:;"'<,>.?/"];
        NSMutableString *dest = [NSMutableString string];
        for (int i = 0; i < str.length; i++) {
            NSMutableString *head = [NSMutableString stringWithString:@"@""];
            NSString *temp = [str substringWithRange:NSMakeRange(i, 1)];
            [head appendFormat:@"%@"",temp];
    
            [dest appendFormat:@"%@,",head];
            NSLog(@"%d", i);
        }
        NSLog(@"%@", dest);
    仿iOS图标抖动
    
    #import "LHViewController.h"
    #define angelToRandian(x)  ((x)/180.0*M_PI)
    @interface LHViewController ()
    @property (strong, nonatomic) IBOutlet UIImageView *imageView;
    
    @end
    
    @implementation LHViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
     // Do any additional setup after loading the view, typically from a nib.
        UILongPressGestureRecognizer* longPress=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longPress:)];
        [self.imageView addGestureRecognizer:longPress];
    }
    
    -(void)longPress:(UILongPressGestureRecognizer*)longPress
    {
        if (longPress.state==UIGestureRecognizerStateBegan) {
            CAKeyframeAnimation* anim=[CAKeyframeAnimation animation];
            anim.keyPath=@"transform.rotation";
            anim.values=@[@(angelToRandian(-7)),@(angelToRandian(7)),@(angelToRandian(-7))];
            anim.repeatCount=MAXFLOAT;
            anim.duration=0.2;
            [self.imageView.layer addAnimation:anim forKey:nil];
            self.btn.hidden=NO;
        }
    }
    
    - (IBAction)delete:(id)sender {
        [self.imageView removeFromSuperview];
        [self.btn removeFromSuperview];
    }
    @end
    //修改webView背景色
                        webView.backgroundColor = [UIColor clearColor];
                        [webView setOpaque:NO];
    //自定义cell实际大小获取
    - (void)awakeFromNib {
        // Initialization code
        
        
    }
    
    -(void)drawRect:(CGRect)rect {
        // 重写此方法,并在此方法中获取
        CGFloat width = self.frame.size.width;
    }
    //获取网络图片的宽度
     headerImageView.contentMode = UIViewContentModeScaleAspectFit;
    [headerScrollView addSubview:headerImageView];
    
    int imgWidth = headerImageView.image.size.width;
                    int imgHight = headerImageView.image.size.height;
                    
                    int aWidth = headerImageView.image.size.width/headerImageView.frame.size.width;
                    
                    int LastWidth = imgWidth/aWidth;
                    int LastHight = imgHight/aWidth;
    
    //视频暂停图片
                    UIImageView *imageee = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-100)/2, (SCREEN_HEIGHT-100)/2, 370/2, 310/2)];
                    imageee.image = LOAD_IMAGE(@"newhouse_mov_stop");
                    imageee.center = headerImageView.center;
                    [headerScrollView addSubview:imageee];
                    
                    UIButton *movbtn = [[UIButton alloc] initWithFrame:CGRectMake(0+i*SCREEN_WIDTH, 0, LastWidth, LastHight)];
                    movbtn.backgroundColor = [UIColor clearColor];
                    movbtn.tag = 400+i;
                    [movbtn addTarget:self action:@selector(doBoFang:) forControlEvents:UIControlEventTouchUpInside];
                    movbtn.center = headerImageView.center;
                    [headerScrollView addSubview:movbtn];
    //获取当前屏幕显示的viewcontroller  
    - (UIViewController *)getCurrentVC  
    {  
        UIViewController *result = nil;  
          
        UIWindow * window = [[UIApplication sharedApplication] keyWindow];  
        if (window.windowLevel != UIWindowLevelNormal)  
        {  
            NSArray *windows = [[UIApplication sharedApplication] windows];  
            for(UIWindow * tmpWin in windows)  
            {  
                if (tmpWin.windowLevel == UIWindowLevelNormal)  
                {  
                    window = tmpWin;  
                    break;  
                }  
            }  
        }  
          
        UIView *frontView = [[window subviews] objectAtIndex:0];  
        id nextResponder = [frontView nextResponder];  
          
        if ([nextResponder isKindOfClass:[UIViewController class]])  
            result = nextResponder;  
        else  
            result = window.rootViewController;  
          
        return result;  
    } 
    UILABLE自适应
    
    
    CGRect rect = [operation boundingRectWithSize:CGSizeMake(SCREEN_WIDTH, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont systemFontOfSize:13],NSFontAttributeName,nil] context:nil];
    Xcode编译错误集锦
    1、在将ios项目进行Archive打包时,Xcode提示以下错误:
    [BEROR]CodeSign error: Certificate identity ‘iPhone Distribution: ***.’ appears more than once in the keychain. The codesign tool requires there only be one.
    原因:那么出现此问题的原因是多个证书之间冲突造成两种解决方法如下:
    解决办法:打开mac系统的“实用工具”-“钥匙串访问”-“我的证书”中,会看到有证书名一模一样的,那么请将早期的证书删除掉,重启Xcode;
     
    2、在真机或者模拟器编译程序的时候可能会遇到下面的错误:
    Could not change executable permissions on the application.
    原因:拥有相同的bundle Identifier已经在设备上运行
    解决办法:删除设备中或者模拟器中的App。
     
    3、编译时遇到如下错误:
    A valid provisioning profile matching the application's Identifier 'XXXX' could not be found
    原因:缺少证书或者是在Code Signing Identity处没有选择对应的证书或者是证书不对应
    解决办法:重装证书,检查证书是否是否选择是否对应。
     
    4、编译时遇到如下错误:
    ld: library not found for -lmp3lameclang: error: linker command failed with exit code 1 (use -v to see invocation)
    原因:一般是多人编辑同一个工程时其中一人没将某个库上传导致的
    解决办法:上传具体静态库
     
    //导航栏色调
    
    self.navigationBar.barTintColor = [UIColor colorWithRed:0.01 green:0.05 blue:0.06 alpha:1]; //%%% bartint
        self.navigationBar.translucent = NO;
        viewControllerArray = [[NSMutableArray alloc]init];
        currentPageIndex = 0;
    
    
    
    //设置状态栏颜色
    
    -(UIStatusBarStyle)preferredStatusBarStyle{
        return UIStatusBarStyleLightContent;
        
    //    return UIStatusBarStyleDefault;
    }
  • 相关阅读:
    Linux安装软件时90%的人会遇到这个报错,如何解决?
    mongo下查询ObjectId(id)类型的数据
    解决nohup启动logstash生成的文件过大的问题
    ES集群服务器下线节点扩容后上线的流程
    knife4j的使用记录
    mongodb的update函数更新数据,更新文档中的某个具体字段的数据
    Python celery异步框架
    VueX插件使用
    Vue-router插件使用
    Vue 自定义指令
  • 原文地址:https://www.cnblogs.com/Ganggang888/p/5253635.html
Copyright © 2020-2023  润新知