【问题标题】:Change SwRevealViewController Icon Image on Click单击更改 SwRevealViewController 图标图像
【发布时间】:2016-04-23 06:23:50
【问题描述】:

我想将 SwRevealViewController SideMenu 单击按钮更改为单击按钮,然后再次按下它即可恢复正常。这怎么可能?我应该在哪里更改 SwRevealViewController.m 文件中的代码?

【问题讨论】:

  • 为什么不改变被点击的图标(在你的 frontVC 中,即包含按钮的地方),让筹码掉到可能的地方?
  • 我在这里使用 barButtonitem .. 该操作是在 SwRevealViewController 的 .m 文件中执行的。所以我需要在其库本身中执行此操作,以便我可以一次为所有 ViewControllers 更改它。
  • 好的。切换位置时,​​- (void)revealToggleAnimated:(BOOL)animated 在库中被调用。

标签: ios iphone xcode swrevealviewcontroller


【解决方案1】:

SWRevealViewControllerDelegate 添加到您的视图控制器并实现以下方法。

 revealViewController.delegate = self;

-(void)revealController:(SWRevealViewController *)revealController didMoveToPosition:(FrontViewPosition)position

//check position here
if(position == FrontViewPositionLeft) {

// show normal button image (your menu view is hidden here)

}
else if(position == FrontViewPositionRight) {

  // Change button image here.
}

您还可以在 SWRevealViewController.m 中更改此方法内的按钮图像

- (void)_setFrontViewPosition:(FrontViewPosition)newPosition withDuration:(NSTimeInterval)duration

【讨论】:

  • revealViewController.delegate = self;返回错误
  • 你可以参考这个链接。 github.com/John-Lluch/SWRevealViewController 并探索 RevealControllerStoryboardExample2
  • @AkhilJiji 它不应该返回错误。它应该发出警告。要消除该警告,请将您的视图控制器设置为 SWRevealViewController 的委托。
【解决方案2】:

//查看是否加载添加了这个
// 斯威夫特 4.2

func viewDidLoad() {

super.viewDidLoad() let leftMenuItem = UIBarButtonItem(image: UIImage(named: "menu"), style: .plain, target:revealViewController, action: #selector(SWRevealViewController.revealToggle(_:))) navigationItem.setLeftBarButton(leftMenuItem, 动画: true)

}

【讨论】:

    猜你喜欢
    • 2020-08-17
    • 1970-01-01
    • 2020-11-30
    • 2014-11-16
    • 2022-01-07
    • 2015-08-05
    • 1970-01-01
    • 2019-07-14
    • 2013-05-13
    相关资源
    最近更新 更多