【问题标题】:How to Custom UINavigationController?如何自定义 UINavigationController?
【发布时间】:2013-08-14 07:19:48
【问题描述】:

我有这样的设计目标:

问题是,UIButton valign 不能在中心位置,UIButton 总是相对于UINavigationController 像这样:

如何使UIButton在背景图像中心的高度不是UINavigationController高度?

【问题讨论】:

  • 请更新您的问题以正确显示图像而不是描述。
  • 显示您用于该按钮的代码
  • 您是将此按钮用作条形按钮还是添加为子视图??
  • 您想在导航栏或视图上添加按钮?

标签: ios ipad uinavigationcontroller uinavigationbar


【解决方案1】:
 self.btnBack = [UIButton buttonWithType:UIButtonTypeCustom];
[self.btnBack setImage:[UIImage imageNamed:@"back_active.png"] forState:UIControlStateNormal];
[self.btnBack addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];
self.btnBack.frame = CGRectMake(5, 9, 50, 30);
[self.navigationController.navigationBar addSubview:self.btnBack];

也检查一下link

更新:返回按钮

-(void)back
{

[self.btnBack removeFromSuperview];
[self.navigationController popViewControllerAnimated animated:NO];
}

【讨论】:

    【解决方案2】:

    首先创建自定义按钮,然后在导航控制器中添加子视图:-

    UIButton * headerButton = [UIButton buttonWithType:UIButtonTypeCustom];  
    [headerButton addTarget:self action:@selector(headerButton1Action:) forControlEvents:UIControlEventTouchUpInside];
    headerButton.frame = CGRectMake(95, 1, 30,38 );
    [headerButton setImage:[UIImage imageNamed:@"header-icon"] forState:UIControlStateNormal];
    [headerButton setImage:[UIImage imageNamed:@"header-icon-pressed"] forState:UIControlStateSelected];
    
    [self.navigationController.navigationBar addSubview:headerButton];
    

    我希望这会对你有所帮助。 快乐编码...

    【讨论】:

      【解决方案3】:

      这是一个很好的快速解决方案

      myButton.titleLabel.font = [UIFont fontWithName:@"FontName" size:20.0];   
      myButton.contentEdgeInsets = UIEdgeInsetsMake(3.0, 0.0, 0.0, 0.0);
      

      并隐藏您的导航栏

      [self.navigationController setNavigationBarHidden:YES];
      

      然后显示您的自定义视图

      【讨论】:

      • 我试试你的代码,它的工作我的 UIButton 位置现在是正确的。但我遇到了另一个问题,我的状态位置与 UIButton 位置不同。如何解决这个问题,谢谢。
      【解决方案4】:

      有诀窍,

      您可以使用 [self.navigationController setNavigationBarHidden:YES]; 隐藏 navigationController

      并根据需要在顶部显示自定义视图。

      【讨论】:

        【解决方案5】:

        由于导航栏高度,您面临的问题。现在有两种方法。您可以为导航栏创建一个类别并覆盖 -(CGRect)sizethatFits 方法,如下所示: - (CGSize)sizeThatFits:(CGSize)size { CGSize newSize = CGSizeMake(320,100); 返回新尺寸; }

        或者您可以隐藏导航栏,例如: [self.navigationController setNavigationBarHidden:YES]; 并放置一个标题视图并处理它。

        做你想做的事..

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-02-20
          • 1970-01-01
          • 1970-01-01
          • 2019-11-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多