先看效果圖
}//懶載入
-(nsarray *)cargroups
return _cargroups;
}- (void)viewdidload
#pragma mark - tableview 資料來源方法
/**分組總數*/
-(nsinteger)numberofsectionsintableview:(uitableview *)tableview
/**每一組多少行 ,section是第幾組*/
-(nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section
/**單元格*/
-(uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath
//設定cell 內容
//取出資料模型
nycargroup *group = self.cargroups[indexpath.section];
nycar *car = group.cars[indexpath.row];
//設定資料
cell.imageview.image = [uiimage imagenamed:car.icon];
cell.textlabel.text = car.name;
return cell;
}/**每一組的標題*/
-(nsstring *)tableview:(uitableview *)tableview titleforheaderinsection:(nsinteger)section
/** 右側索引列表*/
-(nsarray *)sectionindextitlesfortableview:(uitableview *)tableview
return arraym;
kvc是cocoa的大招
用來間接獲取或者修改物件屬性的方式
使用kvc在獲取數值時,如果指定物件不包含keypath的"鍵名",會自動進入物件的內部查詢
如果取值的物件是乙個陣列,同樣返回乙個陣列
*//*例如:
nsarray *array = [self.cargroups valueforkeypath:@"cars.name"];
nslog(@"%@", array);
*/return [self.cargroups valueforkeypath:@"title"];
}@end
nycar.h
//
// nycar.h
// 06-汽車品牌帶右側索引
#import
@inte***ce
nycar : nsobject
@property (nonatomic, copy) nsstring *name;
@property (nonatomic, copy) nsstring *icon;
-(instancetype) initwithdict:(nsdictionary *)dict;
+(instancetype) carwithdict:(nsdictionary *)dict;
// 傳入乙個包含字典的陣列,返回乙個hmcar模型的陣列
+(nsarray *) carswitharray:(nsarray *)array;
@end
nycar.m
//
// nycar.m
// 06-汽車品牌帶右側索引
////
#import "nycar.h"
@implementation
nycar
-(instancetype)initwithdict:(nsdictionary *)dict
return
self;
}+(instancetype)carwithdict:(nsdictionary *)dict
+(nsarray *)carswitharray:(nsarray *)array
return arraym;
}- (nsstring *)description
",self
.class, self, self
.name, self
.icon ];
}@end
nycargroup.h
//
// nycargroup.h
// 06-汽車品牌帶右側索引
#import
@inte***ce nycargroup : nsobject
/** 首字母 */
@property (nonatomic, copy) nsstring *title;
/** 車的陣列,存放的是hmcar的模型資料 */
@property (nonatomic, strong) nsarray *cars;
-(instancetype) initwithdict:(nsdictionary *)dict;
+(instancetype) cargroupwithdict:(nsdictionary *)dict;
+(nsarray *) cargroups;
@end
nycargroup.m
//
// nycargroup.m
// 06-汽車品牌帶右側索引
//#import "nycargroup.h"
#import "nycar.h"
@implementation
nycargroup
-(instancetype)initwithdict:(nsdictionary *)dict
return
self;
}+(instancetype)cargroupwithdict:(nsdictionary *)dict
+(nsarray *)cargroups
return arraym;
}- (nsstring *)description
", self
.class, self, self
.title, self
.cars];
}@end
**偶了
實現右側索引:
/* 右側索引列表/
-(nsarray )sectionindextitlesfortableview:(uitableview )tableview
對datasource複習
@required的兩個
/**單元格*/
-(uitableviewcell *)tableview:(uitableview *)tableview cellforrowatindexpath:(nsindexpath *)indexpath
/**每一組多少行 ,section是第幾組*/
-(nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section
/*分組總數/
-(nsinteger)numberofsectionsintableview:(uitableview *)tableview
/*每一組的標題/
有可能是你存在兩個類名稱都一樣,也可能是因為你在不同的.m檔案中定義了同樣的const變數。
這類錯誤需要自己看錯誤資訊中給出的大長串路徑,從中找出你的那個重名類或者變數名稱,以此來定位錯誤位置。
}
好了 我只想說,aj自己把**拷貝出來,然後又關了xcode ,最後重新建立了乙個專案,把**不動得放回,就這麼華麗麗的好了。。。。。。。。。。。。
IOS UITableView下拉重新整理
給 uitableview 新增 下拉重新整理 pull refresh 屬性 親愛的,我還是有些不忍心,不過事情的經過是這樣的 cocoa touch 的 官方 sdk 裡,壓根就沒實現這個 pull refresh 的功能。恩,這事真不是賈伯斯手下幹的。然而也不是麻匪幹的。是他幹的,enorme...
iOS UItableview重用機制
重用機制的定義就是乙個節省記憶體的機制,當我們的tableview有100或更多資料是如果沒有重用機制那樣會把記憶體很快佔滿 尤其使大多數我們在cell上面放上,是乙個很佔記憶體的東西 所以我們需要重用機制來解決,重用機制就是在我們螢幕的可顯示範圍內建立cell 其餘的復用這些cell,以我個人的理...
IOS UITableView 實現LOL資料展示
本節重點 了解uitableview 的基本屬性 了解kvc.其實 我也不是很了解 效果圖 示例 控制器 sjviewcontroller.m 03.lol demo created by sj.abnormal on 15 2 7.import sjviewcontroller.h import ...