项目小记

一.最近写项目发现接手的项目里面警告有900多条,大概看了一下全是三方库报的警告,当时就没太在意。然后这几天写项目的时候,每当有编辑错误的时候,就要跨过茫茫的三方库的警告去找自己的bug。在今天终于忍不住了,就想要解决了他们,就发现我们可以在podfile文件中 增加一句  inhibit_all_warnings! 来要pod的工程不显示任何警告

这样就不会再提示由第三方问题而显示的警告了

二.富文本在我们开发中是不可缺少的使用方法,可以对label文本的显示进行各种风格设置。而且富文本的使用方法也很多,绝对值得每个开发者认真总结一下其用法。

最常用的就是这种直接定义的

 NSMutableAttributedString * attString = [[NSMutableAttributedString alloc]initWithString:string attributes:@{NSForegroundColorAttributeName:hexColor(@"4382FD"),NSFontAttributeName:[UIFont fontWithName:@"PingFangSC-Regular" size:12.0]}];

然后当我们需要添加其他的文本设置,我们可以使用addAttribute方法

[attString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"PingFangSC-Semibold" size:12.0] range:range];

以下附上富文本的属性名称

NSFontAttributeName 字体                                      NSParagraphStyleAttributeName 段落格式 NSForegroundColorAttributeName 字体颜色         NSBackgroundColorAttributeName  背景颜色NSStrikethroughStyleAttributeName删除线格式      NSUnderlineStyleAttributeName     下划线格式NSStrokeColorAttributeName      删除线颜色            NSStrokeWidthAttributeName删除线宽度NSShadowAttributeName 阴影


三.在项目使用webview的时候,为了显示加载可以添加一个进度条显示

(1)为页面添加UIProgressView属性

@property (nonatomic, strong) UIProgressView *progressView;//设置加载进度条

(2)懒加载UIProgressView

-(UIProgressView *)progressView{

    if (!_progressView) {

        _progressView                  = [[UIProgressView alloc]

                                          initWithProgressViewStyle:UIProgressViewStyleDefault];

        _progressView.frame            = CGRectMake(0, 64, screen_width, 5);

        [_progressView setTrackTintColor:[UIColor colorWithRed:240.0/255

                                                        green:240.0/255

                                                          blue:240.0/255

                                                        alpha:1.0]];

        _progressView.progressTintColor = [UIColor greenColor];

    }

    return _progressView;

}

(3)在初始化WKWebView时(我是在懒加载时) kvo 添加监控

[_mywebView addObserver:self forKeyPath:NSStringFromSelector(@selector(estimatedProgress))

                        options:0                        context:nil];

(4)页面开始加载时,隐藏进度条

//开始加载-(void)webView:(WKWebView *)webView

  didStartProvisionalNavigation:(WKNavigation *)navigation{

    //开始加载的时候,让进度条显示    self.progressView.hidden = NO;

}

(5)kvo 监听进度

//kvo 监听进度-(void)observeValueForKeyPath:(NSString *)keyPath

                    ofObject:(id)object

                      change:(NSDictionary *)change

                      context:(void *)context{

    if ([keyPath isEqualToString:NSStringFromSelector(@selector(estimatedProgress))]

        && object == self.mywebView) {

        [self.progressView setAlpha:1.0f];

        BOOL animated = self.mywebView.estimatedProgress > self.progressView.progress;

        [self.progressView setProgress:self.mywebView.estimatedProgress                              animated:animated];

        if (self.mywebView.estimatedProgress >= 1.0f) {

            [UIView animateWithDuration:0.3f

                                  delay:0.3f

                                options:UIViewAnimationOptionCurveEaseOut

                            animations:^{

                                [self.progressView setAlpha:0.0f];

                            }

                            completion:^(BOOL finished) {

                                [self.progressView setProgress:0.0f animated:NO];

                            }];

        }

    }else{

        [super observeValueForKeyPath:keyPath

                            ofObject:object

                              change:change

                              context:context];

    }

}

(6)在dealloc方法里移除监听

-(void)dealloc{

    [self.mywebView removeObserver:self                        forKeyPath:NSStringFromSelector(@selector(estimatedProgress))];

}

四。我们在项目中有时候经常会出现异常情况导致app卡死或者闪退的情况,在我们知道异常的逻辑的时候可以加上@try @catch 函数来避免这些问题。如下

这样try函数中的代码出了问题就会马上跳入catch函数中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. CocoaPods的介绍 什么是CocoaPods?CocoaPods是一个负责管理iOS项目中第三方开源库...
    辉712阅读 9,392评论 0 7
  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 22,518评论 0 39
  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 25,815评论 3 50
  • 自己独自一个人边学边做,不断完善。其间经历了很多曲折,走了很多弯路,浪费了很多时间,但是我收获了很多。现在回头看看...
    魏永_Owen_Wei阅读 3,933评论 0 3
  • 唐朝企业教练项目小记 短短三个月时间,做了很多事情,今年似乎是忙碌中践行着,成长着的一年。首先是第一次作为团...
    探寻智慧的Music阅读 3,677评论 1 3