美文网首页iOS
iOS 琐碎知识点总结(保持更新...)

iOS 琐碎知识点总结(保持更新...)

作者: 继续向前冲 | 来源:发表于2017-02-08 14:28 被阅读40次

    写这篇博客的目的是为了把平时一些琐碎的知识点总结一些,不然也容易忘记。

    1.数组中内容去重复

    //普通做法
    
            if (![FeedConnArray containsObject:_ConnField.text]) {
                      [FeedConnArray addObject:_ConnField.text];
            }
    //牛逼做法 一行代码去掉数组中重复的内容
    self.dataList = [array valueForKeyPath:@"@distinctUnionOfObjects.self"];
    
    

    2.NS_REQUIRES_SUPER 用法

    在我们定义函数是,希望子类override时必须要调用子类方法是,可以在头文件中定义函数是添加**NS_REQUIRES_SUPER **属性,添加后如果子类不调用super 编译器会报错。

    /** 初始化 */
    - (void)prepare NS_REQUIRES_SUPER;
    /** 摆放子控件frame */
    - (void)placeSubviews NS_REQUIRES_SUPER;
    /** 当scrollView的contentOffset发生改变的时候调用 */
    - (void)scrollViewContentOffsetDidChange:(NSDictionary *)change NS_REQUIRES_SUPER;
    

    3.Masonry使用技巧

    Masonry 使用时都是很多属性都是相对于父控件而言,所以有时候可以节省很多书写代码。下面讲一个最基本的技巧

        //创建个UIView
        UIView * tempview = [UIView new];
        tempview.backgroundColor = [UIColor redColor];
        [self.view addSubview:tempview];
        //最基础用法,同时制定上下左右的和和需要对齐的控件的位置
        [tempview mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.equalTo(self.view).offset(20);
            make.right.equalTo(self.view).offset(-20);
            make.top.equalTo(self.view).offset(20);
            make.bottom.equalTo(self.view).offset(-20);
        }];
        //按照上一步可以简化一些代码,父控件部分可以省略
        [tempview mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.offset(20);
            make.right.offset(-20);
            make.top.offset(20);
            make.bottom.offset(-20);
        }];
        
    
        //将上下左右简化为一步
        [tempview mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.equalTo(self.view).insets(UIEdgeInsetsMake(20, 20, 50, 50));
        }];
    
        //可以去掉父控件的代码
        [tempview mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.mas_equalTo(UIEdgeInsetsMake(50, 50, 50, 50));
        }];
    

    tips:使用Masonry时一定要注意使用前要制定父控件,如果不指定,百分之百崩溃。

    相关文章

      网友评论

        本文标题:iOS 琐碎知识点总结(保持更新...)

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