歸納筆記09 UITableView

2021-07-25 04:56:45 字數 4012 閱讀 2698

uitableview繼承了uiscrollview,它具有uiscrollview的功能,這個uiscrollview中主要封裝了uitableviewcell單元格控制項,因此,uitableview預設可以對單元格進行滾動。預設狀態下,所有的uitableviewcontroller例項被自動設為uiscrollview委託。

我們即可在ib中將uitableview拖入介面設計檔案中新增該控制項,也可通過**建立,兩種方式本質相同。支援屬性大致如下:

(1)   style:該屬性指定該**的風格,它對應uitableview物件的style屬性,該屬性支援如下兩個屬性值:

1)           plain:指定該**使用最普通的風格。

2)           grouped:指定該**使用分組風格。

(2)   separator :該屬性指定**行之間分隔條的樣式,可配置兩個屬性:

1)           分隔條樣式。

2)           分隔條顏色

(3)   selector:該屬性用於控制該**的選擇風格。

掌握上面理論後,簡單**開發步驟如下:

(1)              在介面布局中新增乙個uitableview控制項;或通過**建立乙個uitableview物件,並將該物件新增到應用介面中。

(2)              為uitableview設定datasource屬性,該屬性值必須是乙個實現uitableviewdatasource協議的物件。

(3)              讓指定類實現uitableviewdatasource協議,並實現協議中兩個必須實現的方法。

預設的uitableviewcell包含三個可配置的屬性。

(1)    textlabel:該屬性是乙個uilabel控制項,代表該uitableviewcell顯示的標題。

(2)    detailtextlabel:該屬性是乙個uilabel控制項,代表該uitableviewcell顯示的詳細內容。

(3)    image:這是乙個uiimage物件,代表uitableviewcell左邊的圖示。

獲取uitableview控制項之後,接下來可通過如下方法訪問**控制項的**行和分割槽:

(1)       -cellforrowatindexpath:返回該**中nsindexpath對應的**行。

(2)       -indexpathforcell:獲取該**中指定行對應的nsindexpath。

(3)       -indexpathforrowatpoint:返回**中指定點所在的nsindexpath。

(4)       -indexpathsforrowsinrect:返回**中指定區域內所有nsindepath組成的陣列。

(5)       -visiblecells:返回**中所有可見區域內的**行組成的陣列。

(6)       -indexpathforvisiblerows:返回該**中所有課件區域內的**行對應的nsindexpath組成的陣列。

也可以通過如下方法來控制**控制項的滾動:

(1)                           -scrolltorowatindexpath:atscrollposition:animation:控制該**滾動指定nsindexpath對應的**行的頂端、中間或下方。

(2)                           -scrolltonearestselectedrowatscrollposition:animation:控制該**滾動到選中**行的頂端、中間或下方。

當**控制項允許選中時,預設情況下,當使用者單擊**的某個**行時,系統就會選中對應的**行。uitableview提供了如下屬性來配置**的選中狀態。

(1)   allowsselection:該屬性控制該**是否允許被選中。

(2)   allowsmultiplesection:該屬性控制該**是否允許多選。

除此之外,也可通過uitableview提供如下方法來操作**中被選中的行:

(1)   -indexpathforselectionrow:獲取選中**行對應的nsindexpath。

(2)   -indexpathforselectionrows:獲取所有被選中**行對應的nsindexpath組成的陣列。

(3)   -selectrowatindexpath:animation:scrollposition:控制該**選中指定nsindexpath對應的**行,最後乙個引數控制是否滾動到被選中行的頂端、中間和底部。

(4)   -deselectrowatindexpath:animation:控制取消選中該**中指定nsindexpath對應的**行。

如果程式需要響應**行的選中事件,這時候需要借助uitableview的委託物件,委託物件必須實現uitableviewdelegate物件——當uitableview**行發生選中相關事件時,都會激發該委託物件的響應方法:

(1)   -tableview:willselectrowatindexpath:當使用者將要選中**中的某行時激發該方法。

(2)   -tableview:didselectrowatindexpath:當使用者完成選中**中的某行時激發該方法。

(3)   -tableview:willdeselectrowatindexpath:當使用者將要取消**中的某行時激發該方法。

(4)   -tableview:diddeselectrowatindexpath:當使用者選中**中的某行時激發該方法。

如果只是使用系統提供的uitableviewcell,uitableview控制項的**行只支援有限的樣式,而且每個**行只包含textlabel、detailtextlabel、uiimageview這三個控制項。

為了自由定製控制項的**行,可通過如下方式完成:

(1)   繼承uitableview定製**行。

(2)   使用動態單元格定製**行,即直接在ib上設定。

(3)   利用xib檔案定義**行。

uitableview生成的**控制項功能十分靈活,不僅可作為資料顯示控制項,還支援對**行進行移動、刪除和插入等操作。

uitableview提供了editing屬性來判斷該**控制項是否處於編輯狀態,如果是返回yes,反之則no。為了切換**控制項的編輯狀態,uitableview提供了setediting:animation:方法,如果第乙個引數為yes,則為編輯狀態。

除此之外,控制項還具有插入、刪除、移動**行:

(1)   -beginupdates:對**執行多個連續的插入、刪除、移動操作前,先呼叫該方法開始更新。

(2)   -endupdates:當對**控制項執行多個連續的插入、刪除移動操作後的,呼叫該方法提交並更新。

(3)   -insertrowsatindexpaths:withrowanimation:在乙個或者多個nsindexpath處插入**行。

(4)   -deleterowsatindexpaths:withrowanimation:刪除乙個或多個nsindexpath處的**行。

(5)   -moverowsatindexpath:將指定nsindexpath處的**行移動到另乙個nsindexpath處。

(6)   -insertsections:withrowanimation:在指定nsindexset所包含的乙個或多個分割槽號對應的位置插入分割槽。

(7)   -deletesections:withrowanimation:刪除指定nsindexset所包含的乙個或多個分割槽號對應的分割槽。

(8)   -movesection:tosection:將指定分割槽移動到另乙個位置。

(1)   -numberofsectionsintableview:該方法的返回值決定該**包含多少個分割槽。

(2)   -sectionindexfitlesfortableview:該方法的返回值用於在**右邊建立一列浮動的索引。

(3)   -tableview:titleforheaderinsection:該方法的返回值決定指定分割槽的頁首。

(4)   -tabelview:titleforfooterinsection:該方法的返回值決定指定分割槽的頁尾。

閱讀筆記09

關於這次閱讀筆記我閱讀了兩章人月神話,畫蛇添足以及貫徹執行,這兩章大概講述了人們在工作中避免過於自信,以及執行專案經理的設計才能使乙個小組更加長久 1.盡早交流和持續溝通能使結構師有較好的成本意識,以及使開發人員獲得對設計的信心,並且不會混淆各自的責任分工。2.結構師如何成功地影響實現 i.牢記是開...

前端基礎筆記09

一 透明度 1 如果定位的盒子沒有寬高,那麼預設寬高為0 2 如果給子盒子設定寬為100 那麼子盒子的寬與父盒子一樣寬 3 透明度 opacity 不透明度 賦值 opacity 0.5 取值 在0 1之間的小數 這個屬性ie6不支援,如果在ie6中設定透明,要用 filter alpha opac...

python 學習筆記(09)

字串格式化 轉換說明符 字元 標記轉換說明符的開始 轉換標誌 可選 減號 左對齊 加號 在轉換值之前要加上正負號 空白字元 正數之前保留空格 0 零 轉換值若位數不夠用0填充 最小字段寬度 可選 轉換後的字串至少應該具有該值指定的寬度,如果是 則寬度會從值元組中讀出 點 後跟精度值 可選 如果是實數...