【问题标题】:iOS 7 Changing UINavigationBar titleView alphaiOS 7 更改 UINavigationBar titleView alpha
【发布时间】:2014-01-19 07:18:02
【问题描述】:

所以我使用的是 iOS7 的 UINavigationBar 组件,而不是 UINavigationController 本身。当我使用自定义导航控制器推送新视图时,我想将标题的 alpha 更改为 0.0,然后再改回来,但我似乎无法让它工作。

我正在尝试这样做

vc1.navBar.topItem.titleView.alpha = 0.1;

好像没什么效果。我在这里遗漏了什么,有没有正确的方法来实现这一点?

【问题讨论】:

    标签: ios cocoa-touch ios7 uinavigationbar


    【解决方案1】:

    我会这样做:

    • 在推送的 viewController 的 viewWillAppear: 中,我会使用以下方法将其 alpha 设置为 0:

      [self.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                                  [[UIColor whiteColor] colorWithAlphaComponent:0],
                                                                  NSForegroundColorAttributeName,
                                                                  [UIFont fontWithName:@"Helvetica-Bold" size:16.0],
                                                                  NSFontAttributeName,
                                                                   nil]];
      
    • viewDidAppear: 中,将其 alpha 设置回 1。在这里,您实际上不需要将其 alpha 设置为 1,只需将其设置为纯 [UIColor whiteColor] 即可。

    您可以做的另一件事是,在 2 个方法中切换 HIDDEN 属性。

    设置 titleView 的 alpha 在我的情况下不起作用,所以我使用了上面的代码。它隐藏了标题。如果您希望后退按钮具有类似的效果,您可以使用 self.navigationItem.backBarButtonItem.customView.alpha = 设置后退按钮的 alpha

    【讨论】:

    • 如果我使用自定义 titleView 会怎样?
    • 然后你设置自定义视图的alpha
    【解决方案2】:

    您可以在viewWillAppear中设置titleViewhidden

    - (void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
    
        self.navigationItem.titleView.hidden = YES;
    }
    

    viewDidAppear 之前,您无法设置titleView alpha

    - (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
    
        self.navigationItem.titleView.alpha = 0.5f;
    }
    

    【讨论】:

      【解决方案3】:

      你可以试试这个——

      [self.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                                          [UIColor colorWithRed:125/255.0 green:178/255.0 blue:15/255.0 alpha:0.2],
                                                                          NSForegroundColorAttributeName,
                                                                          [UIFont fontWithName:@"Helvetica-Bold" size:16.0],
                                                                          NSFontAttributeName,
                                                                           nil]];
      

      如果您只想更改标题属性。或者这个来改变bar alpha:

      [self.navigationBar setBarTintColor:[UIColor colorWithRed:125/255.0 green:178/255.0 blue:15/255.0 alpha:0.2]];
      

      【讨论】:

      • 有没有办法为 alpha 变化设置动画?
      猜你喜欢
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      • 1970-01-01
      • 2017-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多