摘要:在最近的学习中经常会遇到关于回调的应用,所以总结一下关于回调的基本用法业务逻辑在主页面中添加一个搜索视图控件,当开始编辑搜索栏时,通过回调跳转至新的页面说明视图控件,继承在该类中添加属性,系统默认会生成属性的和方法,在实际使用时,可以根据实
在最近的学习中经常会遇到关于Block回调的应用,所以总结一下关于Block回调的基本用法:
1、业务逻辑:在主页面中添加一个搜索视图控件(XBRSearchBar),当开始编辑搜索栏时,通过Block回调跳转至新的页面;
2、Class说明:
a、XBRSearchBar:视图控件,继承UISearchBar;在该类中添加Block属性,系统默认会生成Block属性的set和get方法,在实际使用时,可以根据实际业务逻辑需要重写Block的set和get方法(我这测试的比较简单,就不重写直接使用默认的方法了),而Block的具体实现也不用写,而是放在视图控制器中实现;
b、ViewController:视图控制器,可以根据实际需要添加Block的具体实现;
c、XBRSearchViewController:视图控制器,用于管理跳转后的新视图,与Block的回调没关系了;
3、相关的测试代码如下:
#import@interface XBRSearchBar : UISearchBar // 添加Block属性(返回值为:void, 不带参数) @property (nonatomic, copy) void (^searchBarShouldBeginEditingBlock)(); @end
#import "XBRSearchBar.h" @implementation XBRSearchBar // UISearchBar的代理方法,当开始编辑搜索栏时会调用该方法 - (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar{ // 判断当Block属性不为空时,执行当前Block,就是执行“ViewController”中Block的具体实现代码 if (_searchBarShouldBeginEditingBlock) self.searchBarShouldBeginEditingBlock(); return YES; } @end
#import@interface ViewController : UIViewController @end
#import "ViewController.h" #import "XBRSearchBar.h" #import "XBRSearchViewController.h" @interface ViewController () @property (nonatomic, strong) XBRSearchBar *searchBar; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor purpleColor]; #pragma mark - 设置searchBar视图 _searchBar = [[XBRSearchBar alloc]init]; _searchBar.delegate = _searchBar; _searchBar.placeholder = @"搜索栏"; _searchBar.backgroundColor = [UIColor clearColor]; _searchBar.showsCancelButton = YES; self.navigationItem.titleView = _searchBar; #pragma mark - block回调跳转页面 // 弱化self,避免循环引用; __weak typeof(self) weakSelf = self; XBRSearchViewController *searchViewController = [[XBRSearchViewController alloc]init]; // Block的具体实现; _searchBar.searchBarShouldBeginEditingBlock = ^{ [weakSelf.navigationController pushViewController:searchViewController animated:YES]; }; } @end
// 以下只是跳转到新页面的一些界面设置,有兴趣可以浏览一下 #import@interface XBRSearchViewController : UIViewController @end
#import "XBRSearchViewController.h" #import "XBRSearchBar.h" @interface XBRSearchViewController() @property (nonatomic, strong) XBRSearchBar *searchBar; @end @implementation XBRSearchViewController - (void) viewDidLoad{ [super viewDidLoad]; self.view.backgroundColor = [UIColor orangeColor]; _searchBar = [[XBRSearchBar alloc]init]; _searchBar.placeholder = @"搜索栏"; _searchBar.showsCancelButton = YES; self.navigationItem.titleView = _searchBar; } @end
4、具体的完整代码可参考:链接描述
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/16272.html
摘要:概述就是闭包,可以用来回调。可以这么理解,我定义了一个返回值为类型的。我们可以打断点来看一下整个的执行顺序。这里可以更加明显理解回调的含义。是我们需要调用网络请求的地方。是一个,我用来解析数据的。 废话 开发iOS距离一年还有四个月。block的文章看了很多。也在项目中使用了,但是使用率很低,仅限于最最简单的界面传值。 我最近处于一个深度学习和补作业做实验的阶段(重点是补作业和做实...
摘要:第二个表示这个无参数。充电内部需要耗时秒。充电完成之后回头来触发我中设置的出去逛街。,最简单的我们就讲到这里,用好他来给你的代码非写死吧分享来源 我们在开发中常常会用到函数回调,你可以用通知来替代回调,但是大多数时候回调是比通知方便的,所以何乐而不为呢?如果你不知道回调使用的场景,我们来假设一下:1.我现在玩手机2.突然手机没有电了3.我只好让手机开始充电4.充电的过程中我好无聊,我要...
摘要:它是在的基础上改进的一种方案,通过对文件描述符上的事件状态进行判断。检索新的事件执行与相关的回调几乎所有情况下,除了关闭的回调函数,它们由计时器和排定的之外,其余情况将在此处阻塞。执行事件的,例如或者。 前言 学习Node就绕不开异步IO, 异步IO又与事件循环息息相关, 而关于这一块一直没有仔细去了解整理过, 刚好最近在做项目的时候, 有了一些思考就记录了下来, 希望能尽量将这一块的...
摘要:论坛上有过这么一篇热门文章,它从角度分析了无限滚动加载的设计实践。无限滚动加载背后的技术挑战其实比想象中要多不少。整体思路和方案设计我们要实现的页面样例如图,它能够做到无限下拉加载内容。 UX Planet论坛上有过这么一篇热门文章: Infinite Scrolling Best Practices,它从UX角度分析了无限滚动加载的设计实践。 无限滚动加载在互联网上到处都有应用:豆瓣...
摘要:论坛上有过这么一篇热门文章,它从角度分析了无限滚动加载的设计实践。无限滚动加载背后的技术挑战其实比想象中要多不少。整体思路和方案设计我们要实现的页面样例如图,它能够做到无限下拉加载内容。 UX Planet论坛上有过这么一篇热门文章: Infinite Scrolling Best Practices,它从UX角度分析了无限滚动加载的设计实践。 无限滚动加载在互联网上到处都有应用:豆瓣...
阅读 764·2021-11-22 13:52
阅读 770·2019-08-30 15:44
阅读 439·2019-08-30 15:43
阅读 2255·2019-08-30 12:52
阅读 3336·2019-08-29 16:16
阅读 517·2019-08-29 13:05
阅读 2804·2019-08-26 18:36
阅读 1765·2019-08-26 13:46