iOS培训-斗鱼直播APP之首页导航栏设置

玩转【斗鱼直播APP】系列之首页导航栏设置作者:小码哥教育重点掌握内容导航栏添加Items给系统的类扩充方法扩充便利构造函数效果展示在iOS开发中,导航栏的设置是必不可少的一部分。通常导航栏中会放很多的UIBarButtonItem,以方便用于操作对应的功能斗鱼首页导航条展示直接实现(最low方式)不管是左侧logo的Item,还是右侧的三个Item都是有点击效果的。因此在实现时,最好创建UIButton,通过给UIButton设置图片来实现。并且让UIButton作为UIBarButtonItem的customView实现代码如下://MARK:-设置导航栏内容extensionHomeViewController{//MARK:设置导航栏privatefuncsetupNavigationBar(){setupNavigationLeftBar()setupNavigationRightBar()}privatefuncsetupNavigationLeftBar(){letbtn=UIButton()btn.setImage(UIImage(named:"logo"),forState:.Normal)btn.sizeToFit()btn.addTarget(self,action:#selector(self.leftItemClick),forControlEvents:.TouchUpInside)navigationItem.leftBarButtonItem=UIBarButtonItem(customView:btn)}privatefuncsetupNavigationRightBar(){//1.确定UIButton的尺寸letsize=CGSize(width:40,height:44)//2.创建历史的ItemlethistoryBtn=UIButton()historyBtn.setImage(UIImage(named:"image_my_history"),forState:.Normal)historyBtn.setImage(UIImage(named:"image_my_history_click"),forState:.Highlighted)historyBtn.addTarget(self,action:#selector(self.historyItemClick),forControlEvents:.TouchUpInside)historyBtn.frame=CGRect(origin:CGPointZero,size:size)lethistoryItem=UIBarButtonItem(customView:historyBtn)//3.创建搜索的ItemletsearchBtn=UIButton()searchBtn.setImage(UIImage(named:"btn_search"),forState:.Normal)searchBtn.setImage(UIImage(named:"btn_search_clicked"),forState:.Highlighted)searchBtn.addTarget(self,action:#selector(self.searchItemClick),forControlEvents:.TouchUpInside)searchBtn.frame=CGRect(origin:CGPointZero,size:size)letsearchItem=UIBarButtonItem(customView:searchBtn)//4.创建二维码的ItemletqrcodeBtn=UIButton()qrcodeBtn.setImage(UIImage(named:"image_scan"),forState:.Normal)qrcodeBtn.setImage(UIImage(named:"image_scan_click"),forState:.Highlighted)qrcodeBtn.addTarget(self,action:#selector(self.qrCodeItemClick),forControlEvents:.TouchUpInside)qrcodeBtn.frame=CGRect(origin:CGPointZero,size:size)letqrcodeItem=UIBarButtonItem(customView:qrcodeBtn)navigationItem.rightBarButtonItems=[historyItem,searchItem,qrcodeItem]}//MARK:导航栏的事件处理@objcprivatefuncleftItemClick(){print("点击了logo")}@objcprivatefuncqrCodeItemClick(){print("点击了二维码")}@objcprivatefuncsearchItemClick(){print("点击了搜索")}@objcprivatefunchistoryItemClick(){print("点击了历史")}}优化上述代码(系统类扩充方法)上述方式虽然实现了功能,但是我们发现重复代码太多。并且如果其他地方也用到类似的功能,还是要写大量代码。最好的方式就是进行抽取?如何抽取呢?在OC中我们通常给系统的类抽取分类,在分类中给系统的类扩充方法Swift也是类似,只是Swift使用extension,表示对系统的类进行扩充比如我们给系统的类抽取类方法,代码如下:给系统类扩充类方法extensionUIBarButtonItem{classfunccreateBarButtonItem(imageName:String,highImageName:String="",size:CGSize=CGSizeZero,target:AnyObject?=nil,action:Selector=nil)->UIBarButtonItem{//1.创建UIButtonletbtn=UIButton(type:.Custom)//2.给UIButton设置属性btn.setImage(UIImage(named:imageName),forState:.Normal)ifhighImageName!=""{btn.setImage(UIImage(named:highImageName),forState:.Highlighted)}//3.设置尺寸ifsize==CGSizeZero{btn.sizeToFit()}else{btn.frame=CGRect(origin:CGPointZero,size:size)}//4.监听点击btn.addTarget(target,action:action,forControlEven...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?