声明:本demo还未完善,正在持续更新中。。。
先上图吧:
这个小demo资源图片全是用青花瓷抠出来的,现在只是完成了 一部分。会持续更行中。。。有兴趣的朋友可以关注我,我们一起coding,一起分享。
然后这个demo很简单。但是有一些小细节可以和大家分享。
相信用过美团的同鞋都知道,美团的主界面。
效果动画图如下:
很明显美团的主界面是一个tableView 如上图的scrollView是tableView的一个cell.
快速创建一个cell并传递一个模型。
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{
JFHomeMenuCell*cell = [JFHomeMenuCellcellWithTableView:tableViewmenuArray:self.menuArray];
returncell;
}
快速得倒plist文件里面的数据。
self.menuArray=[GetPlistArrayarrayWithString:@"menuData.plist"];
具体实现:只要给我一个文件名就给你返回一个该文件的数组,是不是很爽?反正我是觉得很爽!
NSString*plistPath = [[NSBundlemainBundle]pathForResource:stringofType:nil];
NSArray*array = [[NSArray alloc]initWithContentsOfFile:plistPath];
return array;
如上tableView快速创建cell同一个原理。给我传一个tableView就创建一个cell是不是可以举一反三了?
staticNSString*menuID =@"menu";
JFHomeMenuCell*cell = [tableView dequeueReusableCellWithIdentifier:menuID];
if(cell ==nil) {
cell = [[JFHomeMenuCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:menuIDmenuArray:menuArray];
}
returncell;
cell怎么创建的控制器不必知道。
送上一句宝贵意见:控制器知道的越少越好。
接下来就是创建16个按钮,你不会的话 要请我吃饭了。接下来说一个代理方法:
#pragma mark - scrollView delegate
- (void)scrollViewDidScroll:(UIScrollView*)scrollView{
CGFloatscrollViewW =scrollView.frame.size.width;
//算出水平移的距离
CGFloatx = scrollView.contentOffset.x;
intpage = (x + scrollViewW/2)/scrollViewW;
_pageControl.currentPage= page;
}
算出当前的是处于ScrollView的哪个界面。
再说pageControl的两个属性
_pageControl.currentPageIndicatorTintColor=navigationBarColor;//处于哪个界面的小圆点原色
_pageControl.pageIndicatorTintColor= [UIColorgrayColor];//于上相反。
搞定。由于比较简单不上传到github上了。
本demo会持续更新的哦。重要的事情说三遍哈哈。
睡觉了。晚安23:19的上海。