ign*_*rum 3 iphone xcode objective-c ios
我想用自定义导航栏开发应用程序,如下图所示:
我认为我需要子类UINavigationBar并添加按钮到导航栏的中心,但我真的不知道如何使导航栏看起来像在图像上.能否请你给我建议我应该做什么,任何类型的文件链接都很棒!
关于navBar的类似问题对我没有帮助:
编辑:
我的想法是下一步:使自定义导航栏高度略大于默认大小,并添加带箭头的背景图像,边缘有一些透明度.
如果你想要一个按钮(你可能想要),你可以通过子类化完全实现它UINavigationBar
.你应该记住,height
的UINavigationBar
只读属性.
风格但不可点击:
所以我们假设我们将导航栏子类化并在那里添加按钮.你可以做到这一点,看起来会很棒.例如:
- (void)drawRect:(CGRect)rect
{
self.backgroundColor = [UIColor lightGrayColor];
UIButton *myButton = [[UIButton alloc] initWithFrame:CGRectMake(self.frame.size.width/2-50, 0 , 100, 100)];
[myButton setBackgroundColor:[UIColor lightGrayColor]];
[myButton setTitle:@"Normal" forState:UIControlStateNormal];
[myButton setTitle:@"Highlighted" forState:UIControlStateHighlighted];
[self addSubview:myButton];
[self sendSubviewToBack:myButton];
}
Run Code Online (Sandbox Code Playgroud)
但是你将面临一个问题,即你的按钮在下面是不可录制的UINvaigationBar
.(我在答案的底部张贴了一张图片)
所以显然没有你想要遵循的路径.甚至不尝试.
风格但不适合2:
您可以在导航栏子类中覆盖此方法
- (CGSize) sizeThatFits:(CGSize)size {
return CGSizeMake(custom_width, custom_height);
}
Run Code Online (Sandbox Code Playgroud)
然后使用UIBezierPath
例如掩码它
正确(可点击)方式:
你必须创建一个视图棒UINavigationBar
.我将在这里做什么(如果你想在每个屏幕上)是:
UIViewController
可以绘制的类别(例如 - 这是最简单的方法)UIButton
.[btn addTarget:self action:@selector(menuShow:) forControlEvents:UIControlEventTouchUpInside];
menuShow:
方法应在您的类别中声明正如你所看到的那样,会有两个独立的视图:UINavigationBar
和UIButton
.这允许您在此小按钮下设置内容并使其可点击.
那么为什么只是不隐藏导航栏,并使用不同的视图?因为iOS7;)当Apple在iOS7中更改它时,你必须重建你的伪NavigationBar,只有额外的视图,你不需要做任何事情.
归档时间: |
|
查看次数: |
1882 次 |
最近记录: |