【问题标题】:UIBarButtonItem disable animationUIBarButtonItem 禁用动画
【发布时间】:2016-08-16 14:59:18
【问题描述】:

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

我尝试过查看视图:

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

但随后应用崩溃了。

UIBarButtonItem 位于 UiToolbar 中,在情节提要中创建。

【问题讨论】:

  • 什么是触摸动画,你的意思是正常和高亮状态的图像?
  • 您是否尝试禁用按钮的用户交互
  • 你所做的似乎过于复杂并且可能是错误的,如果它在navController 中,那么在navigationItem 中调用tittle/right/left/barButtonItem,否则包括栏按钮所在的位置
  • @Anbu.Karthik 该按钮没有“userInteractionEnabled”属性
  • @MikeAlter 当我触摸按钮时,它会得到不同的颜色。我不想要这种效果。我试过self.appTitle.setBackgroundImage(UIImage(named: "footer"), forState: .Highlighted, barMetrics: .Default),没有运气。

标签: ios swift uikit


【解决方案1】:

这行得通:

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

【讨论】:

    【解决方案2】:

    如果您希望 UIBarButtonItem 不被点击,请使用

    barBtnItem.enabled = false
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        如果您的 UIBarButtonItem 在 NavigationItem 中,则首先将其分配给 leftBarButtonItem 或 rightBarButtonItem,然后在 Objective-c 中将 UIBarButtonItem 的 enabled 属性设置为 NOfalse 迅速

        目标-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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多