今天试着写ios 类似淘宝商品详情页面的效果
我用到的第三方库EGORefreshTableHeaderView下拉刷新的效果还有就是PWLoadMoreTableFooterView上拉加载更多
主要的思路在于UISCrollView两页,一页展示商品概况,另一页展示商品更多详情
首先,第一页的view包含一个UITableView,这个tableView实现PWLoadMoreTableFooterView中的delegate方法,
实现delegate代理方法的时候使用
- (void)scrollViewByPageControlPage:(NSInteger)page
{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.50];
[self.backScrollView setContentOffset:CGPointMake(0, (ScreenHeight-navigationHeight-OffsetHeight)*page)];
[UIView commitAnimations];
}
将scrollView滚动到第二页,以便展示更多详情。
再次,在scrollview的第二页中加入一个View ,在此view上再创建一个ScrollView,这个scrollView实现EGORefreshTableHeaderView的delegate方法
具体如下:
#pragma mark -
#pragma mark EGORefreshTableHeaderDelegate Methods
- (void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView*)view{
[self reloadTableViewDataSource];
[self performSelector:@selector(doneLoadingTableViewDataForIndex) withObject:nil afterDelay:1.0];
}
- (void)doneLoadingTableViewDataForIndex
{
_reloading = NO;
[_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:lectureScrollView];
[_loadMoreFooterView pwLoadMoreTableDataSourceDidFinishedLoading];
[self scrollViewByPageControlPage:0];
}
- (BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView*)view{
return _reloading; // should return if data source model is reloading
}
- (NSDate*)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView*)view{
return [NSDate date]; // should return date data source was last changed
}
一下实现EGORefreshTableHeaderView的delegate方法
此处设置跳转到SCRollView第一页
- (void)doneLoadingTableViewDataForIndex
{
_reloading = NO;
[_refreshHeaderView egoRefreshScrollViewDataSourceDidFinishedLoading:lectureScrollView];
[_loadMoreFooterView pwLoadMoreTableDataSourceDidFinishedLoading];
[self scrollViewByPageControlPage:0];
}
到此基本上实现了该框架。
推荐阅读:
www.wahenzan.com
版权声明:本文为gloryFlow原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。