Iphone 使导航栏在xCode 5/iOS7中的状态栏后面伸展
我按照以下教程向下移动导航栏,使其不被xcode 5/ios7中的状态栏覆盖: 但是现在在iOS7中,状态栏的顶部有一个空白,我希望导航栏也能填充这个区域 例如,Facebook/Twitter/Instagram iOS7应用程序的状态栏后面也有导航栏背景。我如何做到这一点 对不起,如果我不清楚,但真的很想得到这个排序Iphone 使导航栏在xCode 5/iOS7中的状态栏后面伸展,iphone,objective-c,xcode,uiviewcontroller,ios7,Iphone,Objective C,Xcode,Uiviewcontroller,Ios7,我按照以下教程向下移动导航栏,使其不被xcode 5/ios7中的状态栏覆盖: 但是现在在iOS7中,状态栏的顶部有一个空白,我希望导航栏也能填充这个区域 例如,Facebook/Twitter/Instagram iOS7应用程序的状态栏后面也有导航栏背景。我如何做到这一点 对不起,如果我不清楚,但真的很想得到这个排序 谢谢大家!
谢谢大家!如果你想在iOS 7中用一个自定义背景图像拉伸一个UnavigItBar,请考虑以下内容:
[UINavigationBar appearance].barTintColor = [UIColor redColor];
您确实想设置
UINavigationBar
的barPosition
您可以在代码中执行此操作:
让您的ViewController符合协议UINavigationBarDelegate
,并实现位置栏:metod。(您真正需要的协议是UIBarPositioningDelegate
,但是UINavigationBarDelegate
确实扩展了它。)
@接口SampleViewController()
@属性(弱、非原子)IBUINAVIGATIONBAR*导航条;
@结束
@实现SampleViewController
-(无效)viewDidLoad{
[超级视图下载];
_navigationBar.delegate=self;
}
-(UIBAR位置)杆的位置:(id)杆{
返回UIBarPositionTopAttached;
}
@结束
或在故事板中:
在UINavigationBar
的标识检查器中,添加一个用户定义的运行时属性,其中KeyPath=barPosition,Type=Number,Value=3:
您使用的是自定义导航栏还是内置导航栏?您可能需要解释如何实际设置导航栏位置。非常感谢您教我“用户定义的运行时属性”菜单的功能。这对我来说是惊天动地的。我永远不会再将ui元素子类化以更改一个属性。这里有有趣的发现,但它对我不起作用。我总是会遇到以下错误:“***由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因是:“无法在控制器管理的UINavigationBar上手动设置委托。”“如果我覆盖UINavigationViewController并将其添加到其中,则不会出现错误,但是它也不起作用…@哈哈,我只是希望你是在讽刺,哦。这根本不是你应该养成的习惯。这很快就会成为调试的噩梦。@TheCodingArt是的,我在读Uber工程师在Quora上的一些文章,他们说他们从Xcode中删除了所有图形用户界面设计工具——正是因为这个;而且,Xcode存储和解析文件的方式导致了版本控制的噩梦。这条评论肯定有4张赞成票,但我认为这些应该被恰当地视为“紧急情况”,例如单作者/模型/非生产应用程序!有趣的是,许多工程师讨厌情节串连板,并抱怨他们对测试和调试很糟糕。。。然后你打开他们的代码,他们有无数的胶水代码和样板,这是绝对不可解析的
[UINavigationBar appearance].barTintColor = [UIColor redColor];
@interface SampleViewController () <UINavigationBarDelegate>
@property (weak, nonatomic) IBOutlet UINavigationBar *navigationBar;
@end
@implementation SampleViewController
- (void)viewDidLoad {
[super viewDidLoad];
_navigationBar.delegate = self;
}
- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar {
return UIBarPositionTopAttached;
}
@end