【发布时间】:2013-02-05 02:03:59
【问题描述】:
如何实现UISearchBar类似Instagram.app的滚动效果? UISearchBar 向上滚动,UITableView 向上滚动。 UISearchBar 在 origin.y 等于 0 时停止向下滚动;
【问题讨论】:
标签: iphone ios uitableview scroll uisearchbar
如何实现UISearchBar类似Instagram.app的滚动效果? UISearchBar 向上滚动,UITableView 向上滚动。 UISearchBar 在 origin.y 等于 0 时停止向下滚动;
【问题讨论】:
标签: iphone ios uitableview scroll uisearchbar
我的解决方法如下:
- (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) {
}];
}
}
【讨论】:
创建一个 UISearchBar 实例并将其设置为 tableView Header View
[tableView setTableHeaderView:yourSearchBar];
它现在将使用 tableView 滚动
【讨论】: