欧美人两个人激情的免费视频_国产亚洲人成网站在线观看不卡_直接看毛片_免费乱理伦片在线观看app

十三年專注于網站建設與互聯網應用開發,低調、有情懷的網絡應用服務商!
南昌百恒科技微信公眾號 掃一掃關注
tel-icon全國服務熱線:400-680-9298,0791-88117053
掃一掃關注百恒科技微信公眾號

IOS開發之表視圖的可重用對象

百恒科技 2019-01-16 17:15:15 2745
? ? ? ?在iOS 6之后,表視圖中有兩種子視圖采用可重用對象設計,它們是表視圖單元格(UITableViewCell)和表視圖節頭節腳視圖(UITableViewHeaderFooterView)。下面百恒科技小編就帶大家一起來了解一下。

? ? ? ?1、表視圖單元格
? ? ? ?表視圖單元格的重用方法有兩個:dequeueReusableCellWithIdentifier:方法和 dequeueReusableCellWithIdentifier:forIndexPath:方法。

? ? ? ?通過dequeueReusableCellWithIdentifier:方法,可以用標識符從表視圖中獲得可重用單元格,模式代碼如下:
? ? ? ?let cellIdentifier = "CellIdentifier"
? ? ? ?var cell:UITableViewCell! =
? ? ? ?tableView.dequeueReusableCellWithIdentifier(cellIdentifier)
? ? ? ??as? UITableViewCell
? ? ? ?if (cell == nil) {
? ? ? ??cell = UITableViewCell(style: UITableViewCellStyle.Default,
? ? ? ??reuseIdentifier:cellIdentifier)
? ? ? ?}? ? ? ??

? ? ? ?static NSString *CellIdentifier = @"CellIdentifier";
? ? ? ?UITableViewCell *cell = [tableView
? ? ? ??dequeueReusableCellWithIdentifier:CellIdentifier];
? ? ? ?if (cell == nil) {
? ? ? ??cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
? ? ? ??reuseIdentifier:CellIdentifier];
? ? ? ??}?

? ? ? ?要在表視圖數據源的tableView:cellForRowAtIndexPath:方法中使用可重用單元格設計,首先通過
? ? ? ?dequeueReusableCellWithIdentifier:方法從表視圖中找,如果cell為空,則需要使用initWithStyle:reuseIdentifier:構造器創建。?

? ? ? ?dequeueReusableCellWithIdentifier:forIndexPath:方法是iOS 6之后提供的方法。與上一個方法相比,該方法的簽名多了forIndexPath:部分。它可以通過指定單元格位置獲得可重用單元格,不需要判斷,模式代碼如下:
? ? ? ?let CellIdentifier = "CellIdentifier"
? ? ? ?var cell:UITableViewCell! = tableView.dequeueReusableCellWithIdentifier
? ? ? ??(CellIdentifier, forIndexPath:indexPath) as? UITableViewCell

? ? ? ?static NSString *CellIdentifier = @"CellIdentifier";
? ? ? ?UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:
? ? ? ??CellIdentifier forIndexPath:indexPath];?

? ? ? ?這個方法的使用有一些限制,它只能應用于iOS故事板中,并且在故事板中設計表視圖單元格后,指定表視圖單元格為動態的,Identifier屬性設置為cellIdentifier。圖1設定了表視圖單元格的屬性。

IOS開發之表視圖的可重用對象
圖1、表視圖中的可重用單元格

? ? ? ?2、表視圖節頭節腳視圖
? ? ? ?UITableViewHeaderFooterView也是iOS 6之后新加的內容,節頭和節腳也會反復出現,它也需要可重用設計。

? ? ? ?使用表視圖的dequeueReusableHeaderFooterViewWithIdentifier:方法獲得UITableViewHeaderFooterView對象后,如果沒有可重用的UITableViewHeaderFooterView對象,則使用initWithReuseIdentifier:構造器創建。其模式代碼如下:
? ? ? ?override func tableView(tableView: UITableView, viewForHeaderInSection
? ? ? ??section:Int) -> UIView? {

? ? ? ??let headerReuseIdentifier = "TableViewSectionHeaderViewIdentifier"

? ? ? ??var sectionHeaderView :UITableViewHeaderFooterView!
? ? ? ??= tableView.dequeueReusableHeaderFooterViewWithIdentifier
? ? ? ??(headerReuseIdentifier) as? UITableViewHeaderFooterView

? ? ? ??if sectionHeaderView == nil {
? ? ? ??sectionHeaderView
? ? ? ??= UITableViewHeaderFooterView(reuseIdentifier:
? ? ? ??headerReuseIdentifier)
? ? ? ??}
? ? ? ??......
? ? ? ??return sectionHeaderView
? ? ? ?}? ? ? ??

? ? ? ?- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:
? ? ? ??(NSInteger)section
? ? ? ?{
? ? ? ??static NSString *headerReuseIdentifier =
? ? ? ??@"TableViewSectionHeaderViewIdentifier";
? ? ? ??UITableViewHeaderFooterView *sectionHeaderView = [tableView
? ? ? ??dequeueReusableHeaderFooterViewWithIdentifier:
? ? ? ??headerReuseIdentifier];
? ? ? ??if (!sectionHeaderView) {
? ? ? ??sectionHeaderView = [[UITableViewHeaderFooterView alloc]
? ? ? ??initWithReuseIdentifier:headerReuseIdentifier];
? ? ? ??}
? ? ? ??......
? ? ? ??return sectionHeaderView;
? ? ? ?}

? ? ? ?需要在表視圖委托協議UITableViewDelegate中的tableView:viewForHeaderInSection:方法中使用可重用對象設計。?

? ? ? ?關于IOS開發中表視圖的可重用對象就先介紹到這里,了解更多關于南昌APP開發方面的知識,歡迎繼續關注本公司網站!
400-680-9298,0791-88117053
掃一掃關注百恒網絡微信公眾號

歡迎您的光顧,我們將竭誠為您服務×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務 售后服務
 
備案專線 備案專線
 
售后服務 售后服務
 
×