横向设备时,UISearchBar 不附加导航栏
Posted
技术标签:
【中文标题】横向设备时,UISearchBar 不附加导航栏【英文标题】:UISearchBar doesn't attached with navigation bar when device in landscape 【发布时间】:2013-10-03 08:14:18 【问题描述】:在导航栏下添加了 UISearch 栏。 我用
[videoSearchBar setFrame:CGRectMake(0, 64, 320, 44)];
适用于 ios 7。
在横向模式下,导航栏和搜索栏之间存在间隙。 在早期版本中,它可以在没有 setFrame 的情况下正常显示。
在搜索栏下方有一个表格视图。
【问题讨论】:
导航栏高度在纵向和横向之间变化。使用topLayoutGuide
定位您的搜索栏。
谢谢@albertamg。你能解释一下如何做到这一点。您是指 UI 构建器还是以编程方式完成。
【参考方案1】:
导航栏的高度在纵向和横向之间变化。使用topLayoutGuide
定位您的搜索栏。您可以在 Interface Builder 中或以编程方式执行此操作:
- (void)viewDidLoad
[super viewDidLoad];
UISearchBar *searchBar = [[UISearchBar alloc] init];
searchBar.delegate = self;
[self.view addSubview:searchBar];
searchBar.translatesAutoresizingMaskIntoConstraints = NO;
NSDictionary *views = @@"v":searchBar,
@"topLayoutGuide":self.topLayoutGuide;
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[topLayoutGuide][v]" options:0 metrics:nil views:views]];
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[v]|" options:0 metrics:nil views:views]];
#pragma mark - UISearchBarDelegate
- (UIBarPosition)positionForBar:(id <UIBarPositioning>)bar
return UIBarPositionTopAttached;
【讨论】:
以上是关于横向设备时,UISearchBar 不附加导航栏的主要内容,如果未能解决你的问题,请参考以下文章