如何将视图带到 UIView 层次结构的顶部
Posted
技术标签:
【中文标题】如何将视图带到 UIView 层次结构的顶部【英文标题】:How to bring View to top of UIView Hierarchy 【发布时间】:2015-08-26 17:58:56 【问题描述】:我的应用目前有一个搜索栏,并生成从搜索栏下拉的结果的持有者视图。但是,ResultContainerView 落后于我的其他视图。我想知道如何将该搜索栏容器视图带到 UIView 层次结构的顶部。我尝试使用[super bringSubviewToFront:_searchResultsHolderView];
,但没有奏效。这是我点击搜索栏时的方法。
- (void)_expandSearchResults
CCLogVerbose (@"");
_searchResultsHolderView.alpha = 0.0;
_searchResultsHolderView.hidden = NO;
[_searchResultsHolderView setFrameHeight:10];
[UIView beginAnimations:@"expandSearchResults" context:nil];
[UIView setAnimationDuration:kAnimationDuration_SearchResults];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector (searchAnimationDidStop:finished:context:)];
_searchResultsHolderView.alpha = 1.0;
[_searchResultsHolderView setFrameHeight:_searchResultsHt];
[super bringSubviewToFront:_searchResultsHolderView];
[UIView commitAnimations]; // start animation
这是我的 reloadData 方法:
- (void)_reloadSearchResults:(NSString *)searchS
CCLogVerbose (@"");
if ([searchS length] == 0)
_searchResults = nil;
[_searchResultsTableView reloadData];
return;
NSAssert (self.patientService != nil, @"The Patient Service is invalid");
[self.patientService searchPatients:searchS
expandType:AllPatientExpansions
success:^(NSArray *list)
_searchResults = list;
[_searchResultsTableView reloadData];
failure:^(NSError *error)
CCLogDebug (@"Failed: %@", error);
];
【问题讨论】:
【参考方案1】:[self.superview bringSubviewToFront:self];
[self bringSubviewToFront:_searchResultsHolderView];
首先你需要把self
放到栈顶。之后,您可以拨打bringSubViewToFront
并将您的_searchResultsHolderView
带到前面。
【讨论】:
以上是关于如何将视图带到 UIView 层次结构的顶部的主要内容,如果未能解决你的问题,请参考以下文章
插入视图控制器视图的层次结构时,UIView不会直接放在集合视图单元格的顶部
以编程方式将 UIScrollView 滚动到 Swift 中的子 UIView(子视图)的顶部
如何将视图带到 StoryBoard 中的 tableview 内容视图的顶部?