如何實現(xiàn)上面的效果呢白指,可以通過以下的鏈接實現(xiàn) http://bbs.csdn.net/topics/390999364 里面的僅僅是思路较坛,具體的還是要自己動手去玩印蔗,首先這個分為三部分,第一部分丑勤,是訂單編號华嘹,取消按鈕,這部分可以在tableVide的代理方法中實現(xiàn)- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{}這里面直接自己定義一個新的view法竞,可以自己代碼編寫耙厚,也可以是xib。
然后就第二部分爪喘,下面的待付款颜曾,查看物流等等,這部分跟第一部分的實現(xiàn)方法是一樣的也是在tableView的代理方法中- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{}秉剑,第三部分也是最重要的部分泛豪,中間的商品圖片,商品的名稱,價格诡曙,數(shù)量等等臀叙,這部分要在UITableViewcell中來實現(xiàn),實現(xiàn)代理方法价卤,- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{} 這個方法是返回多少個section劝萤,應該不用多說了吧,
最主要的是下面的-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return _cellData.count;
}這個方法是在section中有多少個數(shù)據(jù)慎璧,因為是動態(tài)的床嫌,每個cell中數(shù)據(jù)的個數(shù)是不確定的,所以這個返回的也是要根據(jù)請求過來的數(shù)據(jù)來進行操作的胸私,我的解決方法是在創(chuàng)建一個新的可變數(shù)組厌处,然后這個可變數(shù)組來 [countArr addObject:secDataArr];然后再上面的方法中-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [[countArr objectAtIndex:section] count];
}這樣的話就可以動態(tài)的返回cell的數(shù)據(jù)的個數(shù)了。我遇到的問題是這個返回的數(shù)據(jù)是個二層數(shù)組岁疼,secDataArr就是第二個數(shù)組阔涉,在-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{}這個方法中的實現(xiàn)的時候出現(xiàn)了一些問題,NewOrderList *newModel = _secCelldata[indexPath.row];
如果是這么寫的時候捷绒,第一個cell的數(shù)據(jù)顯示的是正確的瑰排,不管有幾個數(shù)據(jù)。往下的cell顯示的數(shù)據(jù)都是第一條的數(shù)據(jù)暖侨,如果改成NewOrderList *newModel = _secCelldata[indexPath.section]; 這么寫的話椭住,就是cell中的個數(shù)只能是一個數(shù)據(jù),也就是那個二層數(shù)組里面的數(shù)據(jù)也是一個它碎,如果數(shù)組中的數(shù)據(jù)是兩個的話函荣,動態(tài)的返回個數(shù)兩個显押,這兩個數(shù)據(jù)就是會顯示的一樣扳肛,往下一個cell就會顯示二層數(shù)組的第二個,這樣的話就是會顯示錯位乘碑。
如何解決呢 挖息,我想了想,這個方法只能一個頁面顯示固定的cell數(shù)兽肤,比如是五個套腹,你就要創(chuàng)建五個可變數(shù)組,然后再請求數(shù)據(jù)中资铡,
就是這樣电禀,然后再uitableViewCell的方法中
這樣就可以實現(xiàn)了,只是很是呆板跟小兒科笤休,但是也是一種解決方法尖飞。