Snippet-Xcode10快捷代码

迁移快捷代码

  • 打开 Finder,快捷键Command + Shift + G.弹出文本框.输入~/Library/Developer/Xcode/UserData/CodeSnippets(如果没有CodeSnippets 可以先自定义一个代码段 然后文件自动生成 如果是beta版本路径所有改变了)
  • image.png
  • 摘录

Xcode制作Snippets

制作代码段.png

代码段位置.png

可以用cmd+shift+l调试出来

  • 了解Snippets
    代码段图.png

1.Title:标题
2.Summary:备注
3.Completion Shortcut:快捷方式
4.Platform:平台(iOS)、Language:语言(Objective-C)

5.Completion Scopes:作用域


作用域.png
  • Class Implementation:类的实现区域(ViewDidLoad、ViewWillAppear同级)
  • Class Interface Methods:类的定义区域(@property(nonatomic,strong)NSString *name;同级)
  • Class Interface Variables:类定义区域的{}里面 定义常量({
    NSString *_name;
    } 同级)
    *Code Expression、Function or Method :都是在方法里面写
  • Preprocessor Directive(前置处理器指示词):在一些导入类的头文件下面写
  • String or Comment:不知道
  • Top Level :不知道
  • 隐式<#name#> 就是Xcode里面 需要填充的占位
  • 删除 选中按delete 就可以啦

代码段

1.属性

  • strong-pstrong
@property(nonatomic,strong)<#type#> *<#name#>;
  • copy-pcopy
@property(nonatomic,copy)<#type#> *<#name#>;
  • assign-passign
@property(nonatomic,assign)<#type#> <#name#>;
  • readonly-preadonly
@property(nonatomic,assign,readonly)<#type#> <#name#>;
  • delegate-pdelegate
@property(nonatomic,weak)id <<#delegatename#>> delegate;
  • block-pblock
@property(nonatomic,copy)void (^<#name#>)(<#type#> <#name#>);
  • weak-pweak
@property(nonatomic,weak)<#type#> *<#name#>;

2.mark

  • life生命区域-plife
#pragma mark - life生命区
  • lazy懒加载-plazy
#pragma mark - lazy懒加载
  • 通用-pmark
#pragma mark - <#内容#>

3.枚举值

  • 枚举-penum
typedef NS_ENUM(NSUInteger, <#MyEnum#>) {
    <#MyEnumValueA#>,
    <#MyEnumValueB#>,
    <#MyEnumValueC#>,
};

4.init

  • init-pinit
- (instancetype)init
{
    if (self = [super init]) {
        
    }
    return self;
}
  • initFrame-pinitFrame
- (instancetype)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame]) {
        
    }
    return self;
}

6.if

  • if else- pifelse
if (<#判断条件#>) {
        
    } else if (<#判断条件#>) {
        
    } else {
        
    }

7.控件

  • UITableView-ptableview
- (UITableView *)mainView
{
    if (!_mainView) {
        UITableView *tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT) style:UITableViewStylePlain];
        [self.view addSubview:tableView];
        tableView.delegate = self;
        tableView.dataSource = self;
        tableView.tableFooterView = [UIView new];
        [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
        tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        tableView.backgroundColor = [UIColor whiteColor];
        tableView.rowHeight = 50;
        if (@available(iOS 11.0, *))
        {
            tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        }
        else
        {
            self.automaticallyAdjustsScrollViewInsets = NO;
        }
        _mainView = tableView;
    }
    return _mainView;
}
  • UICollectionView-pcollectionview
- (UICollectionView *)mainView
{
    if (!_mainView) {
        
        UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
        flowLayout.itemSize = CGSizeMake(74*ADAPTER_WIDTH, 118*ADAPTER_WIDTH);
        flowLayout.minimumLineSpacing = 12*ADAPTER_WIDTH;
        flowLayout.minimumInteritemSpacing = 0*ADAPTER_WIDTH;//就一行
        flowLayout.sectionInset = UIEdgeInsetsMake(0, 10*ADAPTER_WIDTH, 0, 10*ADAPTER_WIDTH);
        flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
        
        UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 0, WIDTH, HEIGHT) collectionViewLayout:flowLayout];
        [self.shadowView addSubview:collectionView];
        collectionView.delegate = self;
        collectionView.dataSource = self;
        [collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"];
        collectionView.backgroundColor = [UIColor whiteColor];
        _mainView = collectionView;
    }
    return _mainView;
}
  • UILable-plabel
- (UILabel *)<#name#>
{
    if (!_<#name#>) {
        UILabel *lab = [[UILabel alloc]init];
        [self addSubview:lab];
        lab.font = [UIFont systemFontOfSize:<#(CGFloat)#> weight:<#(UIFontWeight)#>];
        lab.textColor = <#(nullable UIColor *)#>;
        lab.textAlignment = NSTextAlignmentLeft;
        lab.numberOfLines = 1;
        lab.frame = CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>);
        _<#name#> = lab;
    }
    return _<#name#>;
}
  • UIButton-pbutton
- (UIButton *)<#name#>
{
    if (!_<#name#>) {
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        [self addSubview:button];
        [button setTitle:<#(nullable NSString *)#> forState:<#(UIControlState)#>];
        [button setTitleColor:<#(nullable UIColor *)#> forState:<#(UIControlState)#>];
        button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#> weight:<#(UIFontWeight)#>];
        [button setImage:<#(nullable UIImage *)#> forState:<#(UIControlState)#>];
        [button addTarget:<#(nullable id)#> action:<#(nonnull SEL)#> forControlEvents:<#(UIControlEvents)#>];
        button.frame = CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>);
        _<#name#> = button;
    }
    return _<#name#>;
}

*UIView-pview

- (UIView *)<#name#>
{
    if (!_<#name#>) {
        UIView *view = [[UIView alloc]init];
        view.backgroundColor = RGB(<#r#>, <#g#>, <#b#>, <#a#>);
        view.frame = CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>);
        _<#name#> = view;
    }
    return _<#name#>;
}

*UIImageView-pimageview

- (UIImageView *)<#name#>
{
    if (!_<#name#>) {
        UIImageView *iv = [[UIImageView alloc]init];
        [self addSubview:iv];
        iv.image = [UIImage getPNGimageInBundleWithName:<#(NSString *)#>];
        iv.contentMode = <#(contentModel)#>;
        iv.frame = CGRectMake(<#CGFloat x#>, <#CGFloat y#>, <#CGFloat width#>, <#CGFloat height#>);
        _<#name#> = iv;
    }
    return _<#name#>;
}

8.手势

  • 创建手势-ptapges
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(<#selector#>)];
<#view#>.userInteractionEnabled = YES;
[<#view#> addGestureRecognizer:tap];

9.layer

  • 圆角-playercorner
<#view#>.layer.cornerRadius = 20*ADAPTER_WIDTH;
<#view#>.layer.masksToBounds = YES;
  • 边-playerborder
<#view#>.layer.borderColor = RGB(<#r#>, <#g#>, <#b#>, <#a#>).CGColor;
<#view#>.layer.borderWidth = 1;
  • 阴影
self.layer.shadowColor = RGB(<##>, <##>, <##>, <##>).CGColor;
self.layer.shadowOffset = CGSizeMake(0, 0);
self.layer.shadowRadius = 5;
self.layer.shadowOpacity = 1;
  • 渐变色
CAGradientLayer *gradientLayer = [[CAGradientLayer alloc]init];
        gradientLayer.startPoint = CGPointMake(0, 0);
        gradientLayer.endPoint = CGPointMake(1, 0);
gradientLayer.frame = CGRectMake(0, 0, CGRectGetWidth(<#x#>.frame), CGRectGetHeight(<#x#>.frame));
        UIColor *startColor = rgba(254, 203, 67, 1);
        UIColor *endColor = rgba(255, 154, 56, 1);
        gradientLayer.colors = @[(__bridge id)startColor.CGColor,(__bridge id)endColor.CGColor];
        [<#x#>.layer addSublayer:gradientLayer];

10.网络请求

  • if esle-pifnet
NSLog(@"%@",model);
if (!error) {
    NSString *code = [NSString stringWithFormat:@"%@",model[@"code"]];
    NSString *message = [NSString stringWithFormat:@"%@",model[@"message"]];
    [weakSelf.view showWarning:message];
    if ([code isEqualToString:@"0"]) {
        
    } else {

    }
} else {
    [weakSelf.view showWarning:kbstTipNetError];
}

11.alert提示框

  • alert-palert
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"温馨提示" message:@"" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *sureAction = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
    
}];
UIAlertAction *cancleAction = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action) {
    
}];
[alert addAction:cancleAction];
[alert addAction:sureAction];
[cancleAction setValue:kColor86 forKeyPath:@"_titleTextColor"];
[sureAction setValue:RGB(87, 156, 58, 1) forKeyPath:@"_titleTextColor"];
[self presentViewController:alert animated:YES completion:nil];

12.浏览器

  • 浏览器-pbrowser
NSMutableArray *dataSource = [NSMutableArray array];
    for (NSInteger index = 0; index < self.detailModel.data.images.count; index ++) {
        YBImageBrowseCellData *cellData = [[YBImageBrowseCellData alloc]init];
        cellData.url = self.detailModel.data.images[index].wppURL;
        cellData.sourceObject = [carousel itemViewAtIndex:index];
        [dataSource addObject:cellData];
    }
    YBImageBrowser *yb = [[YBImageBrowser alloc]init];
    yb.dataSourceArray = dataSource;
    yb.currentIndex = index;
    [yb show];
    self.viewDidAppear = NO;
    WK(weakSelf)
    [yb setHideBlock:^{
        weakSelf.viewDidAppear = YES;
    }];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351