刚在网上看到一篇关于 CodeSnippets 的文章,发现自己好像一直也是这样做的,但是从来没整理过的,So 利用空余时间整下的。
Create Code Snippet 确认一、直接创建
通常创建后,可以直接使用快捷键
快捷键直接使用
CodeSnippets二、或是到相应目录下粘贴之前保存的
~/Library/Developer/Xcode/UserData/CodeSnippets
没有CodeSnippets 的时候,直接复制 CodeSnippets 就好了。
三、常用 代码块记录
- 3-1、初始化
my_init_vc
#pragma mark - Life Cycle
- (void)viewDidLoad {
[super viewDidLoad];
[self setupUI];
}
#pragma mark - Method
#pragma mark - Delegate
#pragma mark - SetupUI
- (void)setupUI {
[self addViewConstraints];
}
- (void)addViewConstraints {
}
#pragma mark - Getter
my_init_view
#pragma mark - Life Cycle
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
[self setupUI];
}
return self;
}
#pragma mark - Method
#pragma mark - Delegate
#pragma mark - SetupUI
- (void)setupUI {
[self addViewConstraints];
}
- (void)addViewConstraints {
}
#pragma mark - Getter
my_init_cell
#pragma mark - Life Cycle
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self setupUI];
}
return self;
}
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
}
#pragma mark - Method
#pragma mark - Delegate
#pragma mark - SetupUI
- (void)setupUI {
[self addViewConstraints];
}
- (void)addViewConstraints {
}
#pragma mark - Getter
- 3-2、Getter
my_get_view
- (UIView *)<#UIView view#> {
if (!_<#UIView view#>) {
_<#UIView view#> = [[UIView alloc] init];
_<#UIView view#>.backgroundColor = <#UIColor#>;
}
return _<#UIView view#>;
}
my_get_button
- (UIButton *)<#UIButton#> {
if (!_<#UIButton#>) {
_<#UIButton#> = [UIButton buttonWithType:UIButtonTypeCustom];
[_<#UIButton#> addTarget:self action:@selector(<#UIButton#>Action) forControlEvents:UIControlEventTouchUpInside];
}
return _<#UIButton#>;
}
my_get_imageView
- (UIImageView *)<#UIImageView#> {
if (!_<#UIImageView#>) {
_<#UIImageView#> = [[UIImageView alloc] init];
}
return _<#UIImageView#>;
}
my_get_label
- (UILabel *)<#UILabel#> {
if (!_<#UILabel#>) {
_<#UILabel#> = [[UILabel alloc] init];
_<#UILabel#>.textColor = <#UIColor#>;
_<#UILabel#>.font = <#UIFont#>;
}
return _<#UILabel#>;
}
- 3-3、属性
my_pro_assigin
@property (nonatomic, assign) <#type#> <#name#>;
my_pro_copy
@property (nonatomic, copy) <#type#> *<#name#>;
my_pro_strong
@property (nonatomic, strong) <#type#> *<#name#>;
my_pro_weak
@property (nonatomic, weak) <#type#> <#name#>;
- 3-4、常用 View
my_tableView
<UITableViewDelegate, UITableViewDataSource>
// 将其移动到interface中
@property (nonatomic, strong) UITableView *tableView;
#pragma mark - UITableViewDataSource
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return <#NSInteger number#>;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
<#UITableViewCell cell#> *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass(<#UITableViewCell cell#>.self) forIndexPath:indexPath];
return cell;
}
#pragma mark - UITableViewDelegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
}
- (UITableView *)tableView {
if (!_tableView) {
_tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
_tableView.delegate = self;
_tableView.dataSource = self;
_tableView.estimatedRowHeight = 60;
_tableView.estimatedSectionFooterHeight = 40;
_tableView.estimatedSectionHeaderHeight = 0;
_tableView.separatorStyle = UITableViewCellSelectionStyleNone;
_tableView.backgroundColor = [UIColor whiteColor];
[_tableView registerClass:[<#UITableViewCell cell#> class] forCellReuseIdentifier:NSStringFromClass(<#UITableViewCell cell#>.self)];
}
return _tableView;
}
my_collectionView
<UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout>
@property (nonatomic, strong) UICollectionView *collectionView;
#pragma mark - UICollectionViewDataSource
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return <#numbers#>;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
<#collectionViewcell#> *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass(<#collectionViewcell#>.class) forIndexPath:indexPath];
return cell;
}
#pragma mark - UICollectionViewDelegateFlowLayout
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return CGSizeZero;
}
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsZero;
}
#pragma mark - UICollectionViewDelegate
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
}
<UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>
- (UICollectionView *)collectionView {
if (!_collectionView) {
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.minimumLineSpacing = 0;
layout.minimumInteritemSpacing = 0;
_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
_collectionView.delegate = self;
_collectionView.dataSource = self;
[_collectionView registerClass:[<#collectionViewcell#> class] forCellWithReuseIdentifier:NSStringFromClass(<#collectionViewcell#>.class)];
}
return _collectionView;
}
- 3-5 、其他
my_make_attribute
- (NSAttributedString *)makeAttributedStringWithSubTitle :(NSString *)subTitle title:(NSString *)title {
if (!subTitle.length || !title.length) {
return nil;
}
NSString *str = [NSString stringWithFormat:@"%@%@", subTitle, title];
NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:str];
[attribute addAttributes:@{NSFontAttributeName : <#UIFont#>, NSForegroundColorAttributeName : <#UIColor#><##>} range:[str rangeOfString:subTitle]];
[attribute addAttributes:@{NSFontAttributeName : <#UIFont#>, NSForegroundColorAttributeName : <#UIColor#><##>} range:[str rangeOfString:title]];
return [attribute copy];
}
my_make_shadow
<#view#>.layer.shadowColor = <#color#>.CGColor;
<#view#>.layer.shadowRadius = 3;
<#view#>.layer.shadowOffset = CGSizeMake(0, 2);
<#view#>.layer.shadowOpacity = 0.1;
my_safe_masonry
if (@available(iOS 11.0, *)) {
make.top.mas_equalTo(self.view.mas_safeAreaLayoutGuideTop);
} else {
make.top.mas_equalTo(self.view.mas_top);
}
my_strongify
@strongify(self);
my_weakify
@weakify(self);
个人建议,还是可以手动写的,毕竟自己熟悉的快捷键才是自己的。
此处记录,就是怕后期没保存好或是习惯有调整,先记录此的。
网友评论