freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

ios應(yīng)用開(kāi)發(fā)教程-資料下載頁(yè)

2025-09-20 18:40本頁(yè)面

【導(dǎo)讀】IOS中UIImageView圖片視圖的方法及使用。系統(tǒng)為我們提供了四種常用加載UIImage的方法。·imageNamed:通過(guò)項(xiàng)目中的文件來(lái)創(chuàng)建。·imageWithCGImage:通過(guò)Quartz2D對(duì)象創(chuàng)建。·imageWithData:通過(guò)NSData創(chuàng)建。是要初始化一個(gè)UIImageView視圖的實(shí)例,并將實(shí)例添加到窗口上。確實(shí)第一種方法是最簡(jiǎn)單的,這幾種方法都各有優(yōu)勢(shì)和劣勢(shì)。錯(cuò)諢導(dǎo)致系統(tǒng)的崩潰。但它的優(yōu)點(diǎn)也很明顯,當(dāng)項(xiàng)目中需要復(fù)用該圖像文件時(shí)。,系統(tǒng)就會(huì)從緩存中直接讀取該文件,節(jié)省內(nèi)存空間。下面介紹UIImageView常用的屬性。·Image:設(shè)置UIImageView視圖中正常狀態(tài)下顯示的圖片。解該屬性的作用。我們?cè)诒拘」?jié)例子的基礎(chǔ)上迚行修改。置頭像時(shí),可以單擊按鈕,更換用戶喜愛(ài)的圖像。那么在設(shè)置button的frame值時(shí)要注意,此時(shí)的坐標(biāo)是以它的父類坐。標(biāo)系統(tǒng)為基準(zhǔn),設(shè)置的時(shí)候要注意XY的位置。讀者可以自己實(shí)現(xiàn)按鈕的相關(guān)事件。達(dá)到幻燈片播放的效果。

  

【正文】 h *)indexPath 37.{ 38. [listofFile removeObjectAtIndex:]。 39. [_tableView deleteRowsAtIndexPaths:@[indexPath] 40. withRowAnimation:UITableViewRowAnimationFade]。 41.} 學(xué)習(xí)群: 262779381 我們來(lái)觀察這兩個(gè)實(shí)現(xiàn)表視圖單元格刪除功能的代理方法,第一個(gè) BOOL類型的方法,它的作用是讓用戶做出判斷,當(dāng)前表視圖是否能對(duì)單元格迚行編輯,返回 YES代表能迚行編輯,相反, NO代表丌能對(duì)單元格迚行編輯。而實(shí)現(xiàn)刪除功能的其實(shí)是第二個(gè)代理方法,它的幾個(gè)參數(shù)分別是代表表視圖實(shí)例、表視圖編輯模式類型和在 indexPath中的行數(shù)。 要從一個(gè)表視圖中刪除一行數(shù)據(jù),要分為兩步: ; 。 可能有些讀者會(huì)對(duì) [_tableView deleteRowsAtIndexPaths:@[indexPath]這部分代碼產(chǎn)生疑惑。 思考:我們存儲(chǔ)數(shù)據(jù)的數(shù)組不是 [listlofFile]嗎?那為什么刪除數(shù)組是indexPath? 學(xué)習(xí)群: 262779381 我們可以嘗試一下用 listofFile數(shù)組代替 indexPath,然后我們?cè)谶\(yùn)行程序,單擊edit按鈕,刪除時(shí)會(huì)發(fā)現(xiàn)程序崩潰了,這是因?yàn)槠鋵?shí)我們?cè)趧h除表視圖中記錄時(shí),是通過(guò) ,而丌是通過(guò)裝在數(shù)據(jù)的數(shù)組。我們打開(kāi) SDK看一下這個(gè)代理方法可以發(fā)現(xiàn),在方法中已經(jīng)為我們寫好了參數(shù),就是indexPath數(shù)組。 最后一個(gè)參數(shù) withRowAnimation代表了改變單元格時(shí)的動(dòng)畫效果,系統(tǒng)為我們提供了 8中類型的動(dòng)畫效果。分別是: UITableViewRowAnimationFade UITableViewRowAnimationRight UITableViewRowAnimationLeft UITableViewRowAnimationTop UITableViewRowAnimationBottom UITableViewRowAnimationNone UITableViewRowAnimationMiddle UITableViewRowAnimationAutomatic 讀者如果感興趣的話,可以自己試著體會(huì)一下這幾種動(dòng)畫的效果。 學(xué)習(xí)群: 262779381 添加單元格記錄 我們知道表視圖中的編輯模式類型有三種: 1. UITableViewCellEditingStyleNone 2. UITableViewCellEditingStyleDelete 3. UITableViewCellEditingStyleInsert 然后我們?cè)趯?shí)現(xiàn)添加單元格信息的功能乊前,要先定義幾個(gè)插入類型的編輯模式,這要在實(shí)現(xiàn)相應(yīng)功能乊前做一個(gè)判斷,將第一行單元格的編輯模式設(shè)置為插入。 (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 43. editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { 44. if( == 0){ 45. return UITableViewCellEditingStyleInsert。 46. }else{ 47. return UITableViewCellEditingStyleDelete。 48. } 49.} 學(xué)習(xí)群: 262779381 這樣我們就把表視圖中第一個(gè)單元格的編輯模式設(shè)置成了插入模式,接下來(lái)就通過(guò) mitEditingSyle代理方法實(shí)現(xiàn)單元格的插入。我們?cè)诋?dāng)前單元格下方插入新的單元格,所以我們先要定義一個(gè)靜態(tài)變量,用于定位單元格的位置。 int count = 1。 (void)tableView:(UITableView *)tableView mitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 52.{ 53. if(editingStyle == UITableViewCellEditingStyleDelete){ 54. [listofFile removeObjectAtIndex:]。 55. [_tableView deleteRowsAtIndexPaths:@[indexPath] 56. withRowAnimation:UITableViewRowAnimationFade]。} 57. else if(editingStyle == UITableViewCellEditingStyleInsert){ 58. NSString *CountryName = [NSString stringWithFormat:@Country %d,count]。 59. [listofFile insertObject:CountryName atIndex:+1]。 60. NSIndexPath *_indexPath = [NSIndexPath indexPathForRow:+1 inSection:0]。 61. [_tableView insertRowsAtIndexPaths:@[_indexPath] 62. withRowAnimation:UITableViewRowAnimationMiddle]。 63. count++。 64. } 65.} 學(xué)習(xí)群: 262779381 我們?cè)谶@里初始化了新插入單元格的內(nèi)容,通過(guò) stringWithFormat方法實(shí)現(xiàn)了字符串的初始化,插入完成之后,要將 count的值加 1,讓插入的位置下移一行。 學(xué)習(xí)群: 262779381 單擊添加按鈕之后,在當(dāng)前單元格下一行添加一個(gè)行新記錄,如圖 620所示。這些添加刪除效果都已封裝好,我們用戶只需要通過(guò)相應(yīng)的代理方法去實(shí)現(xiàn)即可。 在實(shí)現(xiàn)了添加和刪除功能之后,我們一起來(lái)了解一下這兩個(gè)功能實(shí)現(xiàn)的原理。 首先,當(dāng)我們進(jìn)入編輯模式后, UITableView會(huì)向其 DataSource發(fā)送 tableView:canEditRowAtindexPath:消息詢問(wèn)每個(gè) indexPath是否都可以編輯,如果單元格不可編輯,則返回 NO;同樣的,對(duì)可以編輯的單元格則返回 YES; 然后, UITableView會(huì)向其代理 delegate發(fā)送 tableView:editingStyleForRowAtindexPath:消息,來(lái)詢問(wèn)編輯的模式是插入還是刪除。它的默認(rèn)值是刪除,即 UITableViewCellEditingStyleDelete。 當(dāng)點(diǎn)擊 ”Delete”按鈕或者 ”加號(hào) ”按鈕時(shí), UITableView向其 DataSource發(fā)送tableView:mitEditingStyle:forRowAtIndexPath:消息,根據(jù)傳遞 editingStyle來(lái)執(zhí)行實(shí)際的刪除或插入操作,其流程是先修改 tableView的數(shù)據(jù)模型 ,向其中刪除或插入對(duì)應(yīng)數(shù)據(jù)項(xiàng),然后再調(diào)整 tableView的顯示 ,刪除或插入對(duì)應(yīng)的單元格。 學(xué)習(xí)群: 262779381 重新排列單元格記錄 要實(shí)現(xiàn)單元格移動(dòng)的功能,首先還是要實(shí)現(xiàn)一個(gè) BOOL類型的代理方法,返回YES值讓單元格能夠移動(dòng)。 (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { 67. return YES。 68.} 實(shí)現(xiàn)移動(dòng)單元格的步驟也有 2步: ; 。 若不按照這兩個(gè)步驟來(lái)實(shí)現(xiàn)移動(dòng)單元格效果,會(huì)造成雖然表示中顯示的已經(jīng)移動(dòng),但是實(shí)際上在數(shù)組中的數(shù)據(jù)還是按原來(lái)的順序進(jìn)行排列,等于沒(méi)有達(dá)到移動(dòng)單元格內(nèi)容的效果。我們下面來(lái)看一下實(shí)現(xiàn)方法的代碼。 學(xué)習(xí)群: 262779381 (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *) toIndexPath:(NSIndexPath *)destinationIndexPath 71.{ 72. NSUInteger removeRow = [sourceIndexPath row]。 73. NSUInteger insertRow = [destinationIndexPath row]。 74. id object = [listofFile objectAtIndex:removeRow]。 75. [listofFile removeObjectAtIndex:removeRow]。 76. [listofFile insertObject:object atIndex:insertRow]。 77.} 這里我們定義了兩個(gè)整型數(shù)據(jù),分別代表需要移動(dòng)的原單元格和要移動(dòng)到特定位置的目的單元格。然后通過(guò)上述兩個(gè)步驟來(lái)進(jìn)行單元格的移動(dòng)。 學(xué)習(xí)群: 262779381 至此,我們基本上完成了對(duì)表視圖編輯模式基礎(chǔ)內(nèi)容的學(xué)習(xí)。有些讀者可能會(huì)發(fā)現(xiàn)在導(dǎo)航欄右側(cè)的編輯按鈕和通常 iPhone上的按鈕有所不一樣,當(dāng)我們點(diǎn)擊 Edit按鈕之后,在編輯模式下,按鈕按常理應(yīng)該會(huì)變成 “Done”,這里并沒(méi)有變化。那么,我們其實(shí)可以自定義一個(gè) editButton來(lái)完善這個(gè)不足。 學(xué)習(xí)群: 262779381 我們就不用系統(tǒng)自帶的 editButtonItem。我們定義一個(gè)載入自定義編輯按鈕的方法。 (void)loadButton 79.{ = [[UIBarButtonItem alloc] initWithTitle:@編輯 :UIBarButtonItemStyleBordered target:self :@selector(editAction)]。 83. = editButton。 84. [editButton release]。 85.} 我們初始化了一個(gè)按鈕,并將它命名為 “編輯 ”,這樣我們?cè)诔绦蛑芯湍苁褂弥形牡陌粹o。然后實(shí)現(xiàn)編輯按鈕的單擊事件。 學(xué)習(xí)群: 262779381 (void)editAction 87.{ 88. if( == @編輯 ) 89. { 90. [editButton setTitle:@確定 ]。 91. [editButton setStyle:UIBarButtonItemStyleDone]。 92. [_tableView setEditing:YES animated:YES]。 93. }else{ 94. [editButton setTitle:@編輯 ]。 95. [editButton setStyle:UIBarButtonItemStylePlain]。 96. [_tableView setEditing:NO animated:YES]。 97. } 98.} 學(xué)習(xí)群: 262779381 這里對(duì)編輯的按鈕做了一個(gè)簡(jiǎn)單的判斷,如果當(dāng)前是在編輯模式,那么按鈕的標(biāo)題就為 “確定 ”,反之文本就是 “編輯 ”。最后我們將這個(gè)自定義編輯按鈕的方法在 viewDidLoad方法中調(diào)用。最后構(gòu)建并運(yùn)行程序,看到最后的效果如圖所示。 學(xué)習(xí)群: 262779381 本章講解了 UIImageView以及 UITableView的基本使用方法,在 IOS開(kāi)發(fā)中,這兩個(gè)視圖是使用頻率較多的視圖,許多模型都是建立它們之上,在進(jìn)行自定義以實(shí)現(xiàn)自己項(xiàng)目的需求。所以希望讀者能夠掌握 UIImageView和 UITableView的使用。 學(xué)習(xí)群: 262779381 本章小結(jié) 課后習(xí)題 UIView修改成 UIImageView,并比較二者在實(shí)現(xiàn)上的相同點(diǎn)和不同點(diǎn)。 UITableView實(shí)現(xiàn)全國(guó)省份的顯示。 ,增加“東北”、“西北”、“華中”、“華東”和“華南”地區(qū)的分類,通過(guò) group類型的 UITableView實(shí)現(xiàn),設(shè)置 header頭。 UITableViewCell添加一個(gè)自定義按鈕。 學(xué)習(xí)群: 262779381
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1