IOS-OC-代码块语法糖

作者: Alan兰洋 | 来源:发表于2016-11-30 02:01 被阅读361次

Xcode中的代码片段默认放在下面的目录中:

~/Library/Developer/Xcode/UserData/CodeSnippets

我们可以将目录中的代码片段备份,也可以将其直接拷出来放在不同的电脑上使用

前提:导入Masonry和UI+Addation类库

格式:编号-解释(快捷键)

类库下载地址:https://github.com/mogulanyang/addation


目录:

01-普通View (xView)

01.1 - 带点击事件的View(xViewAction)

02-普通label(xLabel)

02.2-带事件label(xLabelAction)

03-普通textField(xTextField)

04-带blockBtn(xBtn)

05-上图下文字Btn(xBtnFuwenben)

06-初始化tableview(xTableView)

06.1-设置tableView数据源代理(xTableViewData)

07-普通ImageView(xImageView)

07.2-带事件的imageView(xImageViewAction)

07.3-将Image保存到本地相册

08-collectionViewFlowLayout(xFlowLayout)

08.1- collectionView初始化(xCollectionView)

08.2-collectionView的数据源代理方法(xCollectionViewData)

09.2-导航栏全屏pop手势返回(xAllScreenPop)


01-普通View (xView)

({

UIView*view = [[UIViewalloc]init];

[<#code#> addSubview:view];

view.backgroundColor = [UIColor <#code#>];

[view mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

view;

});

01.1 - 带点击事件的View(xViewAction)

({

UIView*view = [[UIViewalloc]init];

[<#code#> addSubview:view];

view.backgroundColor = [UIColor <#code#>];

[view mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

[view whenTapped:<#^(void)block#>];

view;

});

02-普通label(xLabel)

({

UILabel*label = [[UILabelalloc]init];

label.text = <#code#>;

label.textColor = [UIColor <#code#>];

label.font = [UIFont systemFontOfSize:<#code#>];

[<#code#> addSubview:label];

[label mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

label;

});

02.2-带事件label(xLabelAction)

({

UILabel*label = [[UILabelalloc]init];

label.text = <#code#>;

label.textColor = [UIColor <#code#>];

label.font = [UIFont systemFontOfSize:<#code#>];

[<#code#> addSubview:label];

[label mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

[label whenTapped:<#^(void)block#>];

label;

});

03-普通textField(xTextField)

({

UITextField*textField = [[UITextFieldalloc]init];

textField.placeholder=@"<#code#>";

textField.borderStyle=UITextBorderStyleRoundedRect;

textField.font = [UIFont fontWithName:@"Arial"size:<#code#>];//设置属性

//textField.clearButtonMode = UITextFieldViewModeAlways; //带X模式

//textField.keyboardType = UIKeyboardTypeNumberPad; //键盘模式

//textField.secureTextEntry = YES; //密码模式

[<#code#> addSubview:textField];

[textField mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

textField;

});

04-带blockBtn(xBtn)

({

UIButton*btn = [UIButton createBtnFrame:CGRectZero title:<#code#> imageName:<#code#> bgImageName:nilaction:^(UIButton *button) {

<#code#>

}];

[<#code#> addSubview:btn];

[btn mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

btn;

});

05-上图下文字Btn(xBtnFuwenben)

({

UIButton*button = [UIButtoncreateBtnFrame:CGRectZerotitle:nilimageName:nilbgImageName:nilaction:^(UIButton*button) {

<#code#>

}];

NSAttributedString*str = [NSAttributedString ly_imageTextWithImage:[UIImage imageNamed:@"<#code#>"] imageWH:<#code#> title:@"<#code#>"fontSize:<#code#> titleColor:[UIColor <#code#>] spacing:7];

[buttonsetAttributedTitle:strforState:UIControlStateNormal];

[buttonsizeToFit];

button.titleLabel.numberOfLines=0;

button.titleLabel.textAlignment=NSTextAlignmentCenter;

[<#code#> addSubview:button];

[button mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

button;

});

06-初始化tableview(xTableView)

({

//去遵守代理

UITableView*tableView = [[UITableViewalloc]initWithFrame:CGRectZerostyle:UITableViewStylePlain];

[<#code#> addSubview:tableView];

tableView.dataSource=self;

tableView.delegate=self;

[tableView mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

[tableView registerNib:[UINib nibWithNibName:<#code#> bundle:nil] forCellReuseIdentifier:<#code#>];

[tableView registerClass:[<#code#> class] forCellReuseIdentifier:<#code#>];

tableView;

});

06.1-设置tableView数据源代理(xTableViewData)

-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView

{

return1;

}

-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section

{

return<#expression#>;

}

-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath

{

<#classCell#> * cell = [tableView dequeueReusableCellWithIdentifier:<#(nonnull NSString *)#>];

returncell;

}

-(void)tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath

{

}

-(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath

{

return<#expression#>;

}

07-普通ImageView(xImageView)

({

UIImageView*imageView = [[UIImageViewalloc]init];

imageView.image = [UIImage imageNamed:<#code#>];

imageView.contentMode=UIViewContentModeScaleAspectFill;

[<#code#> addSubview:imageView];

[imageView mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

imageView;

});

07.1-带点击事件的ImageView(xImageViewAction)

({

UIImageView*imageView = [[UIImageViewalloc]init];

imageView.image = [UIImage imageNamed:<#code#>];

imageView.contentMode=UIViewContentModeScaleAspectFill;

[<#code#> addSubview:imageView];

[imageView mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

[imageView whenTapped:<#^(void)block#>];

imageView;

});

07.3-将Image保存到本地相册

#pragma mark -保存相册:image调用此方法即可调用

- (void)saveImageToPhotos:(UIImage*)savedImage

{

UIImageWriteToSavedPhotosAlbum(savedImage,self,@selector(image:didFinishSavingWithError:contextInfo:),NULL);

}

//图片保存成功

- (void)image: (UIImage*) image didFinishSavingWithError: (NSError*) error contextInfo: (void*) contextInfo

{

NSString*msg =nil;

if(error !=NULL){

msg =@"保存图片失败";

}else{

msg =@"保存图片成功";

}

UILabel*saveHud =({

UILabel*label = [[UILabelalloc]init];

label.text=@"图片已经保存成功";

label.textAlignment=NSTextAlignmentCenter;

label.textColor= [UIColorwhiteColor];

label.font= [UIFontsystemFontOfSize:12];

label.backgroundColor= [UIColorcolorWithWhite:0.6alpha:0.7];

[self.viewaddSubview:label];

[label mas_makeConstraints:^(MASConstraintMaker *make) {

make.left.right.equalTo(self.view);

make.top.equalTo(self.view).offset(20);

}];

label;

});

[UIViewanimateWithDuration:1.5animations:^{

saveHud.alpha=0;

}completion:^(BOOLfinished) {

[saveHudremoveFromSuperview];

}];

}

08-collectionViewFlowLayout(xFlowLayout)

- (void)prepareLayout

{

[superprepareLayout];

self.scrollDirection = UICollectionViewScrollDirection<#code#>;

self.minimumLineSpacing =0;

self.minimumInteritemSpacing =0;

self.itemSize = CGSizeMake(self.collectionView.bounds.size.width / <#code#>,self.collectionView.bounds.size.height / <#code#>);

self.collectionView.showsVerticalScrollIndicator =NO;

self.collectionView.showsHorizontalScrollIndicator =NO;

self.collectionView.backgroundColor = [UIColor <#code#>];

self.sectionInset = UIEdgeInsetsMake(0,0,0,0);

self.collectionView.pagingEnabled = <#code#>;

}

08.1- collectionView初始化(xCollectionView)

({

<#code#> *flowLayout = [[<#code#> alloc] init];

UICollectionView*collectionView = [[UICollectionViewalloc]initWithFrame:CGRectZerocollectionViewLayout:flowLayout];

[<#code#> addSubview:collectionView];

collectionView.dataSource=self;

collectionView.delegate=self;

collectionView.backgroundColor = [UIColor <#code#>];

[collectionView registerClass:[<#code#> class] forCellWithReuseIdentifier:<#code#>];

[collectionView mas_makeConstraints:^(MASConstraintMaker *make) {

<#code#>

}];

collectionView;

});

08.2-collectionView的数据源代理方法(xCollectionViewData)

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView

{

return1;

}

- (NSInteger)collectionView:(UICollectionView*)collectionView numberOfItemsInSection:(NSInteger)section

{

return<#expression#>;

}

- (__kindofUICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath:(NSIndexPath*)indexPath

{

<#expression#> *cell = [collectionViewdequeueReusableCellWithReuseIdentifier:@"<#code#>"forIndexPath:indexPath];

returncell;

}

- (void)collectionView:(UICollectionView*)collectionView didSelectItemAtIndexPath:(NSIndexPath*)indexPath

{

<#code#>;

}

- (CGSize)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath*)indexPath

{

return<#expression#>;

}

09.2-导航栏全屏pop手势返回(xAllScreenPop)

#pragma mark -导航栏全屏返回

#warning记得遵守UIGestureRecognizerDelegate方法

- (void)allScreenPop

{

UIGestureRecognizer*gesture =self.interactivePopGestureRecognizer;

//把这个手势禁掉严禁使用

NSLog(@"%@",gesture);

gesture.enabled=NO;

//获取手势对应的view

UIView*gestureView = gesture.view;

//创建一个拖拽的手势

UIPanGestureRecognizer*popRecognizer = [[UIPanGestureRecognizeralloc]init];

popRecognizer.delegate=self;

//添加在被拖拽的view上面即:上面的view

[gestureViewaddGestureRecognizer:popRecognizer];

/**

*获取系统手势的target数组

*/

NSMutableArray*_targets = [gesturevalueForKey:@"_targets"];

/**

*获取它的唯一对象,我们知道它是一个叫UIGestureRecognizerTarget的私有类,它有一个属性叫_target

*/

idgestureRecognizerTarget = [_targetsfirstObject];

/**

*获取_target:_UINavigationInteractiveTransition,它有一个方法叫handleNavigationTransition:

*/

idnavigationInteractiveTransition = [gestureRecognizerTargetvalueForKey:@"_target"];

/**

*通过前面的打印,我们从控制台获取出来它的方法签名。

*/

SELhandleTransition =NSSelectorFromString(@"handleNavigationTransition:");

/**

*创建一个与系统一模一样的手势,我们只把它的类改为UIPanGestureRecognizer

*/

[popRecognizeraddTarget:navigationInteractiveTransitionaction:handleTransition];

}

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer*)gestureRecognizer {

/**

*这里有两个条件不允许手势执行,1、当前控制器为根控制器;2、如果这个push、pop动画正在执行(私有属性)

*/

returnself.viewControllers.count!=1&& ![[selfvalueForKey:@"_isTransitioning"]boolValue];

})

#pragma mark -保证跳转以后Tabbar不在

- (void)pushViewController:(UIViewController*)viewController animated:(BOOL)animated

{

if(self.viewControllers.count>0) {

viewController.hidesBottomBarWhenPushed=YES;

}

[superpushViewController:viewControlleranimated:YES];

}

相关文章

  • IOS-OC-代码块语法糖

    Xcode中的代码片段默认放在下面的目录中: ~/Library/Developer/Xcode/UserData...

  • Swift语法糖的使用

    Swift语法糖的使用 语法糖的简介 语法糖Selector例子 语法糖的简介 我个人对语法糖的理解就是让你的代码...

  • 2018-06-11

    代码块 代码块语法遵循标准markdown代码,例如:

  • 2018-06-11

    测试 代码块 代码块语法遵循标准markdown代码,例如:

  • 双向绑定

    v-model 语法糖 jsbin代码示例

  • 控制语句总结

    #if语句 语法:if(判断){代码块}else{代码块} if(){}else if()。。。。。 if语句是万...

  • swift 语法糖

    if let 与 guard 语法糖 话说if let 和 guard 只是语法糖,没有也可以,但有了可以使得代码...

  • Objective-C中语法糖的趣味应用

    原文首发在ObjC语法糖 在 OC 中语法糖应用形式一般如下: 这里语法糖的使用有利于把代码集中便于阅读; 通过对...

  • vue 自定义组件 v-model 使用

    v-model可以实现数据双向的绑定。语法糖 实际上,上面的代码是下面代码的语法糖。 开发过程中,有时我们需要自定...

  • Markdown语法大全

    markdown语法大全 一,markdown标题 二,markdown代码块 4,行内代码 2,这是代码块! 这...

网友评论

    本文标题:IOS-OC-代码块语法糖

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