我有这个问题,标准的flipsideviewcontroller UINavigationBar看起来像这样:
任何人对如何移动UINavigationBar或者阻止它们的丑陋有任何想法?
答案 0 :(得分:1)
这很棘手。 :)你需要为UINavigationBar设置一个委托 - 这可能是FlipsideViewController。您可以在故事板或代码中执行此操作 - 例如,如果您有导航栏的插座:
-(void)viewDidLoad {
[super viewDidLoad];
self.navigationBar.delegate = self;
}
现在是重要的部分:在委托中实现这个方法:
- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar {
return UIBarPositionTopAttached;
}
使用自动布局时,导航栏的顶部对“顶部布局指南”具有零常量约束也很重要。这并不容易设置,因为Xcode中存在一个错误,它会尝试将其转换为导航栏的 bottom 中的错误约束。如果发生这种情况:
删除顶部约束。
将导航栏向下移动到屏幕上。
按住Control键并拖动以再次形成顶部布局指南的顶部约束。
现在选择顶部约束并手动将其常量设置为0,以使导航栏再次向上移动。