2016-08-16 72 views
0

我有一个UIBarButtonItem,它是一个不可点击的徽标。如何禁用此徽标的触摸动画?UIBarButtonItem禁用动画

我试图让在视图:

 let view = self.appTitle.performSelector(Selector("view")).takeRetainedValue() as? UIView 
     view?.userInteractionEnabled = false 

但随后的应用程序崩溃。

UIBarButtonItemUiToolbar的内部,在故事板中创建。

+0

什么是触摸动画,你的意思是说正常和突出显示状态的图像? –

+0

你尝试禁用按钮的用户交互 –

+0

你在做什么似乎过于复杂,可能是错误的,如果它在'navController'然后在'navigationItem'中调用'tittle/right/left/barButtonItem',否则包括哪里酒吧按钮是躺在 – Tj3n

回答

0

这工作:

self.appTitle.customView = UIImageView(image: UIImage(named: "footer")) 
0

如果您想进行的UIBarButtonItem不要点击使用

barBtnItem.enabled = false 
0

让transitionOptions:UIViewAnimationOptions = [.TransitionCrossDissolve,.ShowHideTransitionViews]
UIView.transitionWithView(# yourUIBarButtonItem outlet,duration:1.0,options:transitionOptions,animations:{ self。#yourUIBarButtonItem outlet.enabled = false },完成:无)

0

如果您的UIBarButtonItem是NavigationItem那么首先将其分配到leftBarButtonItem或rightBarButtonItem然后设置启用的UIBarButtonItem的属性NO在Objective-C和在迅速

目的-C:

UIImage *menuImage = [UIImage imageNamed:@"menu"]; 
    UIButton *menu = [UIButton buttonWithType:UIButtonTypeCustom]; 
    menu.frame = CGRectMake(10, 0, menuImage.size.width, menuImage.size.height); 
    [menu addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventTouchUpInside]; 
    [menu setImage:menuImage forState:UIControlStateNormal]; 
    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:menu]; 
    self.navigationItem.leftBarButtonItem = backButton; 
self.navigationItem.leftBarButtonItem.enabled = NO; 

夫特:

var menuImage: UIImage = UIImage(named: "menu")! 
    var menu: UIButton = UIButton(type: .Custom) 
    menu.frame = CGRectMake(10, 0, menuImage.size.width, menuImage.size.height) 
    menu.addTarget(self, action: #selector(self.handleBack), forControlEvents: .TouchUpInside) 
    menu.setImage(menuImage, forState: .Normal) 
    var backButton: UIBarButtonItem = UIBarButtonItem(customView: menu) 
    self.navigationItem.leftBarButtonItem = backButton 
self.navigationItem.leftBarButtonItem.enabled = false