0

I have design goal like picture in this: enter image description here

The problem is, UIButton valign cannot in center position, UIButton always relative to UINavigationController like this: enter image description here

How to make UIButton valign in center of background image height not UINavigationController height?

4

5 回答 5

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];

也检查这个链接

更新:后退按钮

-(void)back
{

[self.btnBack removeFromSuperview];
[self.navigationController popViewControllerAnimated animated:NO];
}
于 2013-08-14T07:39:06.833 回答
0

有绝招,

您可以使用隐藏导航控制器[self.navigationController setNavigationBarHidden:YES];

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

于 2013-08-14T07:38:18.810 回答
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];

我希望这能帮到您。快乐的编码...

于 2013-08-14T07:36:58.910 回答
0

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

或者你可以像这样隐藏导航栏:[self.navigationController setNavigationBarHidden:YES]; 并放置一个标题视图并处理它。

做你想做的事。。

于 2013-08-15T12:48:08.777 回答
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];

然后显示您的自定义视图

于 2013-08-14T07:37:23.343 回答