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.mimport-

#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];


Method1Method2的区别在于,在Method1sideVC完成动画即位置设置为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

SWRevealViewController 打开方法

带有 SWRevealViewController 的 ios 滑动状态栏

自定义 SWRevealViewController

SWRevealViewController 的 Segue 问题