swrevealviewcontroller 在侧边菜单打开/关闭时更改切换按钮图像?
Posted
技术标签:
【中文标题】swrevealviewcontroller 在侧边菜单打开/关闭时更改切换按钮图像?【英文标题】:swrevealviewcontrtoller change toggle button image when side menu open/close? 【发布时间】:2016-07-06 06:11:02 【问题描述】:我在我的应用程序中使用SWRevealViewContrtoller
作为滑出式侧边菜单。哪个工作正常。但是我有一个问题,当单击按钮或用户拖动侧边菜单时,如何更改侧边栏按钮图像。我指的是这个link。
提前致谢
【问题讨论】:
【参考方案1】:尝试做以下事情-
方法 1(根据您的参考链接):
在你的homeVC.m
设置SWRevealViewControllerDelegate
喜欢
@interface homeVC ()<SWRevealViewControllerDelegate>
并添加 viewDidLoad()
self.revealViewController.delegate = self;
然后添加这个方法-
-(void)revealController:(SWRevealViewController *)revealController didMoveToPosition:(FrontViewPosition)position
//check position here
if(position == FrontViewPositionLeft)
[self.sideBarButton setImage:[UIImage imageNamed:@"open.png"] forState:UIControlStateNormal]; //self.sideBarButton is your toggle button IBOutlet
else if(position == FrontViewPositionRight)
[self.sideBarButton setImage:[UIImage imageNamed:@"close.jpg"] forState:UIControlStateNormal];
方法二:
在你的sideVC.m
import
-
#import "homeVC.h"
#import "SWRevealViewController.h"
现在添加viewWillAppear()
和viewWillDisappear()
-
-(void)viewWillAppear:(BOOL)animated
[super viewWillAppear:animated];
homeVC *vc=(UserProfileViewController*)self.revealViewController.frontViewController;
[vc.sideBarButton setImage:[UIImage imageNamed:@"close.jpg"] forState:UIControlStateNormal];
-(void)viewWillDisappear:(BOOL)animated
[super viewWillDisappear:animated];
homeVC *vc=(UserProfileViewController*)self.revealViewController.frontViewController;
[vc.sideBarButton setImage:[UIImage imageNamed:@"open.jpg"] forState:UIControlStateNormal];
Method1和Method2的区别在于,在Method1中sideVC
完成动画即位置设置为FrontViewPositionLeft
或@987654335 @比按钮图像通过单击按钮或拖动视图更改。但是在Method2中,当sideVC
开始出现按钮图像发生变化,当sideVC
消失时。
【讨论】:
【参考方案2】:试试FRDLivelyButton。在这个库中,您可以更改 UIBarButton 图像。
希望对你有帮助。
【讨论】:
【参考方案3】:添加<SWRevealViewControllerDelegate>
设置self.revealViewController.delegate = self;
- (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position
//change button image below.
if(position == FrontViewPositionLeft)
//drawer close
else
//drawer open
这对我有用。快乐编码
【讨论】:
【参考方案4】:更新 Swift 3.0 添加 SWRevealViewControllerDelegate 在你的 viewDidLoad() 添加这个
self.revealViewController().delegate = self
func revealController(_ revealController: SWRevealViewController!, willMoveTo position: FrontViewPosition)
if position == FrontViewPosition.left
//drawer close
else
//drawer open
【讨论】:
以上是关于swrevealviewcontroller 在侧边菜单打开/关闭时更改切换按钮图像?的主要内容,如果未能解决你的问题,请参考以下文章
具有实用视图的 SWRevealViewController