Ios 如何自定义UINavigationController?

Ios 如何自定义UINavigationController?,ios,ipad,uinavigationcontroller,uinavigationbar,Ios,Ipad,Uinavigationcontroller,Uinavigationbar,我的设计目标如图所示: 问题是,ui按钮valign无法处于中间位置,ui按钮始终与ui导航控制器相关,如下所示: 如何使ui按钮在背景图像高度中心有效,而不是ui导航控制器高度?首先创建自定义按钮,然后在导航控制器中添加子视图:- UIButton * headerButton = [UIButton buttonWithType:UIButtonTypeCustom]; [headerButton addTarget:self action:@selector(headerButto

我的设计目标如图所示:

问题是,
ui按钮
valign
无法处于中间位置,
ui按钮
始终与
ui导航控制器
相关,如下所示:


如何使
ui按钮
在背景图像高度中心有效,而不是
ui导航控制器
高度?

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

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];
我希望这对你有帮助。
快乐编码…

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

myButton.titleLabel.font = [UIFont fontWithName:@"FontName" size:20.0];   
myButton.contentEdgeInsets = UIEdgeInsetsMake(3.0, 0.0, 0.0, 0.0);
并隐藏您的导航栏

[self.navigationController setNavigationBarHidden:YES];
然后显示您的自定义视图

有诀窍

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

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

 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];
也检查一下这个

更新:返回按钮

-(void)back
{

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

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

也可以隐藏导航栏,如: [self.navigationController设置NavigationBarHidden:是]; 然后放一个标题视图并处理它


做你想做的事

请更新您的问题以正确显示图像而不是描述。显示您用于该按钮的代码是否将此按钮用作条形按钮或添加为子视图??是否要在导航栏或视图上添加按钮?我尝试了您的代码,其工作原理我的UIButton位置现在正确。但我还有一个问题,我的状态和按钮的位置不一样。如何解决这个问题,谢谢。