UISearchControl之下的UIScrollView中的UISearchDisplayController UISearchBar动画

JL

这是一个很难解决的错误,我的ObjC-fu确实是初学者,而我对这个漂亮的错误的观察时间越长,我的信心就越发崩溃...

应用程序是需要有一个观点(我们称之为mainView)与UIPageControlUIScrollView才能有2次水平滚动。因此,我通过添加以下内容来实现它:

// This is added on viewDidLoad...
[self addChildViewController:[self.storyBoard instantiateViewControllerWithIdentifier:@"VC1"]];
[self addChildViewController:[self.storyBoard instantiateViewControllerWithIdentifier:@"VC2"]];

// Further processing of the child view controllers...
self.scrollView.pagingEnabled = YES;

for (NSUInteger i = 0; i < [self.childViewControllers count]; i++) {
    UIViewController *controller = [self.childViewControllers objectAtIndex:page];
    CGRect frame = self.scrollView.frame;
    frame.origin.x = frame.size.width * page;
    frame.origin.y = 0;
    controller.view.frame = frame;
    [self.scrollView addSubview:controller.view];
}

// Expanding scroll view's content size for scrolling...
self.scrollView.contentSize = CGSizeMake(
    scrollView.frame.size.width * [self.childViewControllers count], 
    scrollView.frame.size.height);

请注意,mainView它本身配备UISearchDisplayControllerUISearchBar隐藏的屏幕外功能。(不确定此信息是否至关重要。)

问题是与标识符VC2老二视图控制器还配备UISearchDisplayController有一个UISearchBar,并且当结束搜索的搜索栏驳回,动画一些如何让VC2的UISearchBar中重新定位CGRect(0, 0, 320, 40)mainView,而不是VC2的。因此,VC2被UISearchBar“扭曲”回了VC1。

解决此问题的第一个尝试是将每个子视图控制器包含在另一个视图中,希望CGRect(0, 0, 320, 40)VC2UISearchBar仍保留在VC2中,但无济于事:

for (NSUInteger i = 0; i < [self.childViewControllers count]; i++) {
    UIViewController *controller = [self.childViewControllers objectAtIndex:page];
    CGRect frame = self.scrollView.frame;
    frame.origin.x = frame.size.width * page;
    frame.origin.y = 0;
    //controller.view.frame = frame;
    UIView *container = [[UIView alloc] initWithFrame:frame];
    [container addSubview:controller.view];
    [self.scrollView addSubview:container];
}

不知怎的,我猜当VC2的UISearchDisplayController动画它UISearchBarframe它的用途实际上的一个self.UIScrollView,但我不知道。

有人能说明这个错误并将它烧死吗?在iOS7中

     Main View
-------------------
|      VC1        |       VC2
-------------------------------------
|                 |_________________| <- Search Bar (This will 'warped' to VC1 at the same
|                 |                 |    position on end editing)
|                 |                 |
|                 |                 |
|                 |                 |
|                 |                 |
|                 |                 |
|                 |                 |
|                 |                 |
|                 |                 |
-------------------------------------
JL

找到了一个奇怪的解决方案,但是它起作用了,因为注意到在结束搜索时更改了Superview的内存地址后SearchBar的想法从iOS 7的headerview中消失了UISearchBar

下面的代码段中加入任何的委派方法的可能,即viewWillAppearsearchDisplayControllerWillEndSearch:searchDisplayControllerDidEndSearch:

if (self.searchDisplayController.searchBar.superview != self.searchDisplayController.searchContentsController.view) {
    [self.searchDisplayController.searchBar removeFromSuperview];
    [self.searchDisplayController.searchContentsController.view addSubview:self.searchDisplayController.searchBar];
}

将接受此作为答案,但此共享仍应有任何错误。非常感谢你。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

UISearchBar的编辑动画在iOS8中消失了

来自分类Dev

iOS 7/8上UITableViewHeader中的UISearchBar奇怪的动画

来自分类Dev

UISearchBar的编辑动画在iOS8中消失了

来自分类Dev

UISearchBar提示在导航栏中时不进行动画处理

来自分类Dev

UISearchBar动画问题

来自分类Dev

UISearchBar消除动画问题

来自分类Dev

UISearchBar showsCancelButton动画完成

来自分类Dev

UISearchBar动画问题

来自分类Dev

隐藏UISearchDisplayController的UISearchBar

来自分类Dev

UISearchBar和/或UISearchDisplayController颜色

来自分类Dev

UISearchBar和/或UISearchDisplayController颜色

来自分类Dev

与iOS7中UITableView的标头中的UISearchDisplayController链接的UISearchBar

来自分类Dev

Swift:UISearchBar取消按钮动画

来自分类Dev

如何使用UISearchBar和UISearchDisplayController

来自分类Dev

UISearchDisplayController结果表与UISearchBar重叠

来自分类Dev

How to Show and Hide UISearchDisplayController's UISearchBar

来自分类Dev

如何显示和隐藏UISearchDisplayController的UISearchBar

来自分类Dev

Xcode 5中的UISearchBar

来自分类Dev

UIViewController中的UISearchBar崩溃

来自分类Dev

在Swift中隐藏UISearchBar

来自分类Dev

UINavigationController 中的 UISearchBar

来自分类Dev

我的UISearchBar移到顶部(经过动画处理)->要禁用

来自分类Dev

与UISearchController同时对UISearchBar和UIBarButtonItem进行动画处理

来自分类Dev

我的UISearchBar移到顶部(经过动画处理)->要禁用

来自分类Dev

Swift-UIToolbar中的UISearchBar

来自分类Dev

iOS 7中UISearchBar中的UITextField

来自分类Dev

UISearchController在表标题视图中显示的UISearchBar处于活动状态时动画太远

来自分类Dev

iOS 8.0中的UISearchBar barTintColor clearColor错误

来自分类Dev

如何在iOS 7中更改UISearchBar

Related 相关文章

热门标签

归档