2016-08-16 75 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