我的设计目标如下图所示:
问题是,UIButton
valign
不能位于中心位置,UIButton
始终相对于UINavigationController
,如下所示:
如何使UIButton
在背景图像高度的中心位置而不是UINavigationController
高度?
答案 0 :(得分: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];
}
答案 1 :(得分:0)
首先创建自定义按钮,然后在导航控制器中添加子视图: -
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];
我希望这会对你有所帮助。 快乐的编码...
答案 2 :(得分:0)
这是一个很好的快速解决方案
myButton.titleLabel.font = [UIFont fontWithName:@"FontName" size:20.0];
myButton.contentEdgeInsets = UIEdgeInsetsMake(3.0, 0.0, 0.0, 0.0);
并隐藏导航栏
[self.navigationController setNavigationBarHidden:YES];
然后显示您的自定义视图
答案 3 :(得分:0)
有诀窍,
您可以使用[self.navigationController setNavigationBarHidden:YES];
并根据需要在顶部显示自定义视图。
答案 4 :(得分:0)
由于导航栏高度而面临的问题。现在有两种方法。您可以创建导航栏的类别并覆盖 - (CGRect)sizethatFits方法,如下所示: - (CGSize)sizeThatFits:(CGSize)size { CGSize newSize = CGSizeMake(320,100); return newSize; }
或者您可以隐藏导航栏,如: [self.navigationController setNavigationBarHidden:YES]; 并放置一个标题视图并处理它。
做你想做的事情..