標籤:c style a int width strong
1.UITableView
==================================================
UITableView有兩種格式:group和plain
2.UITableView如何展示資料
==================================================
UITableView需要一個資料來源(dataSource)來顯示資料凡是遵守UITableViewDataSource協議的OC對象,都可以是UITableView的資料來源
// 一共有多少組資料
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
// 每一組有多少行資料
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
// 每一行顯示什麼內容
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
3.模型嵌套
==================================================
模型嵌套模型:數組中字典包含的數組裡還有字典
需要設定兩個模型在外層的模型中將內層的模型封裝
4.UITableViewCell
==================================================
介紹
UITableView的每一行都是一個UITableViewCell,通過dataSource的tableView:cellForRowAtIndexPath:方法來初始化每一行UITableViewCell內部有個預設的子視圖:contentView,contentView是UITableViewCell所顯示內容的父視圖,可顯示一些輔助指示視圖輔助指示視圖的作用是顯示一個表示動作的表徵圖,可以通過設定UITableViewCell的accessoryType來顯示,預設是UITableViewCellAccessoryNone(不顯示輔助指示視圖) 5.Cell的重用原理==================================================
重用原理:當滾動列表時,部分UITableViewCell會移出視窗,UITableView會將視窗外的UITableViewCell放入一個對象池中,等待重用。當UITableView要求dataSource返回UITableViewCell時,dataSource會先查看這個對象池,如果池中有未使用的UITableViewCell,dataSource會用新的資料配置這個UITableViewCell,然後返回給UITableView,重新顯示到視窗中,從而避免建立新對象
區分對象池中UITableViewCell的對象 UITableViewCell有個NSString *reuseIdentifier屬性,可以在初始化UITableViewCell的時候傳入一個特定的字串標識來設定reuseIdentifier(一般用UITableViewCell的類名)。當UITableView要求dataSource返回UITableViewCell時,先通過一個字串標識到對象池中尋找對應類型的UITableViewCell對象,如果有,就重用,如果沒有,就傳入這個字串標識來初始化一個UITableViewCell對象
代碼如下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// 1.定義一個cell的標識
static NSString *ID = @”njcell";
// 2.從緩衝池中取出cell
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];
// 3.如果緩衝池中沒有cell
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];
}
// 4.設定cell的屬性...
return cell;