当UITableView滚动时,UISearchBar也会滚动。

4
如何实现类似Instagram.app的UISearchBar滚动效果?当UITableView向上滚动时,UISearchBar也会向上滚动。当UISearchBar的origin.y等于0时,它停止向下滚动。
示例图片: enter image description here enter image description here
2个回答

3
我的解决方案如下:
- (void)viewDidLoad
{
[super viewDidLoad];
self.myTableview.delegate = self;
self.myTableview.dataSource = self;
self.mySearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, searchBarHeight)];
[self.myTableView setContentInset:UIEdgeInsetsMake(searchBarHeight, 0, 0, 0)];
[self.myTableView setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGPoint offset = scrollView.contentOffset;
float move = offset.y + searchBarHeight;
if (move > -2*searchBarHeight && move <3*searchBarHeight) {
    [UIView animateWithDuration:0.1
                          delay:0
                        options:UIViewAnimationOptionCurveEaseOut|UIViewAnimationOptionAllowUserInteraction
                     animations:^{
                         CGRect searchBarFrame = self.mySearchBar.frame;
                         searchBarFrame.origin.y = MIN(MAX(-move, -searchBarHeight), 0);

                         [self.mySearchBar setFrame:searchBarFrame];

                     }

                     completion:^(BOOL f) {

                     }];
}
}

这对我来说不起作用。个人决定使用Interface Builder和nib文件,在一个视图中创建带有UISearchBar、UISearchController和UITableView的UIViewController,并在它们自己的框架中使用。效果很好。 - Denis Kutlubaev
@wzbozon 它是否有相同的效果?为什么不用你的解决方案发表一个答案呢 :) - lu yuan
很难进行发布。所有东西都是在Interface Builder中制作的。 - Denis Kutlubaev

1
创建一个UISearchBar实例并将其设置为tableView的Header View。
        [tableView setTableHeaderView:yourSearchBar];

现在它将随着tableView滚动


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接