聲明:本demo還未完善,正在持續更新中。。。
先上圖吧:
這個小demo資源圖片全是用青花瓷摳出來的,現在只是完成了 一部分。會持續更行中。。。有興趣的朋友可以關注我,我們一起coding,一起分享。
然後這個demo很簡單。但是有一些小細節可以和大家分享。
相信用過美團的同鞋都知道,美團的主介面。
效果動畫圖如下:
git圖
很明顯美團的主介面是一個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的上海。