Swift3.0之cell的三種建立方式
該文介紹Swift3.0中分別採用系統、xib、程式碼自定義三種方式建立UITableViewCell,並與Objective-C建立cell作對比,比較語法的不同之處
下圖是Objective-C編寫的建立cell的專案結構:
可以看到在APPDelegate中,我建立了一個繼承UITableViewController的控制器,並作為根檢視控制器顯示
以下是ViewController實現檔案中的程式碼:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | // // TableViewController.m // 20170317-cell系統方法呼叫順序 // // Created by 柯其譜 on 17/3/18. // Copyright © 2017年 柯其譜. All rights reserved. // #import "TableViewController.h" #import "SystemTableViewCell.h" #import "XibTableViewCell.h" #import "CustomTableViewCell.h" @interface TableViewController () @end @implementation TableViewController - ( void )viewDidLoad { [ super viewDidLoad]; // //系統建立的cell不用註冊 // [self.tableView registerClass:[SystemTableViewCell class] forCellReuseIdentifier:SystemTableViewCellID]; //xib和自定義cell建立的cell必須註冊 [ self .tableView registerNib:[UINib nibWithNibName: NSStringFromClass ([XibTableViewCell class ]) bundle: nil ] forCellReuseIdentifier:XibTableViewCellID]; [ self .tableView registerClass:[CustomTableViewCell class ] forCellReuseIdentifier:CustomTableViewCellID]; } - ( void )didReceiveMemoryWarning { [ super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - Table view data source - ( NSInteger )numberOfSectionsInTableView:(UITableView *)tableView { return 3; } - ( NSInteger )tableView:(UITableView *)tableView numberOfRowsInSection:( NSInteger )section { return 1; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:( NSIndexPath *)indexPath { if (indexPath.section == 0) { SystemTableViewCell *systemCell = [SystemTableViewCell cellWithTableView:tableView indexPath:indexPath]; return systemCell; } else if (indexPath.section == 1) { XibTableViewCell *xibCell = [XibTableViewCell cellWithTableView:tableView indexPath:indexPath]; return xibCell; } else { CustomTableViewCell *customCell = [CustomTableViewCell cellWithTableView:tableView indexPath:indexPath]; return customCell; } } @end |
由於程式碼較為簡單,我這裡就不作解釋,需要注意的是為了控制器的瘦身,我將cell的建立和內容顯示全部放在了各自的cell實現檔案中,且本文三種cell建立方式顯示的cell為同一樣式,這裡是為了簡單起見,到了複雜一點的專案就可將所有的有關cell程式碼全部寫在cell檔案中
以下是SystemTableViewCell,即cell的系統樣式的實現程式碼:
12345相關推薦Swift3.0之cell的三種建立方式該文介紹Swift3.0中分別採用系統、xib、程式碼自定義三種方式建立UITableViewCell,並與Objective-C建立cell作對比,比較語法的不同之處 下圖是Objective-C編寫的建立cell的專案結構: 可以看到在APPDelegate中,我建立 執行緒---三種建立方式例項;以及執行緒池的使用1、繼承Thread類 繼承Thread類,重寫run方法(即要讓執行緒進行的操作), 建立執行緒例項,呼叫start()方法啟動執行緒。 import java.util.Date; /** * @author: ycz * @date: 2018/11/25 0025 執行緒的三種建立方式概念 要了解執行緒,就要先知道程序的概念。 程序:程序是程式的一次執行過程,是在系統中能獨立執行並作為資源分配的基本單位,是由一組機器指令,資料和堆疊等組成的,是一個能獨立執行的活動實體。 這裡注意的是程式和程序的區別: 1,程序是一個動態概念,程式是一個靜態概念。 2 struts2 Action類的三種建立方式目前都在使用繼承ActionSupport類的方法,因為實現了很多方法。 1.直接建立Java類 package action; /** * 測試action用類 * action類必要條件:public修飾符 返回值String * 需要在strust.xm Hive之——metastore三種配置方式(轉)轉自:https://blog.csdn.net/l1028386804/article/details/51564235 Hive的meta資料支援以下三種儲存方式,其中兩種屬於本地儲存,一種為遠端儲存。遠端儲存比較適合生產環境。Hive官方wiki詳細介紹了這三種方式,連結 004.多執行緒-執行緒的三種建立方式1. extend Thread package cn.qbz.thread; public class ExtendThreadTest { public static void main( 多執行緒的三種建立方式繼承Thread類建立執行緒類 public class Thread extends Object implements Runnable 定義Thread類的子類,並重寫其run()方法 建立Thread子類的例項,即建立了執行緒物件 呼叫執行緒物件的 Spring bean的三種建立方式1、建立Spring工程 使用eclipse建立一個Spring工程,一個簡單的方法就是先建立一個Java工程,然後將Spring的Jar包全部放入到工程裡面即可開始編寫基於Spring框架的程式。Spring的Jar包可以從github上的原始碼中取得,下載地址是:。 js面向物件基本理解和三種建立方式面向物件的語言有一個標誌,那就是他們都有類的概念,通過類可以建立任意多個具有相同屬性和方法的物件。 但是在ECMAScript中沒有類的概念,但是我們可以通過其他方式來模擬面向物件的類。 工廠模式:工廠模式是軟體工廠領域中一種廣為人知的設計模式。 建構函式模式:比如像ECM iOS中viewController的三種建立方式新建自定義xib檔案,拖入一個view(否則不能載入was unable to load a nib named “***”)新增一個關聯自定義xib的類繼承自UIViewController。建立一個載入自自定義xib的控制器。(需要將xib的view設定為自定義控制類的view,否則未設定輸出口”load 設計模式:單例模式的三種建立方式及其各自的優缺點單例模式:確保一個類只有一個例項,並提供全域性訪問點。在Java中實現單例模式需要私有的構造器,一個靜態方法和一個靜態變數。確定在效能和資源上的限制,如何選擇適當的方案來實現單例,以解決多執行緒的問題 Windows下,檔案(夾)選擇/開啟對話方塊的三種建立方式Windows程式設計時,常用到開啟檔案(夾)對話方塊,選擇檔案或者多個檔案的功能。Windows提供了好幾種方式,現在做個總結,也好方便以後的使用。 常用的方式有三種: 1.1 使用OPENFILENAME這個結構體和GetOpenFileName() Message的三種建立方式及其區別Java使用執行緒時,一般都要建立Message物件,而Message物件的建立方法有三個:1.Message msg = new Message(); 2.Message msg = Message.obtain(); 3.Message msg = handler.obt spring ioc容器結構初始化步驟以及bean生命週期和三種建立方式建立物件的三種方式: 1、採用預設的建構函式建立 2、採用靜態工廠方法 1、寫一個靜態工廠方法類 public class HelloWorldFactory { 主鍵的特點和三種建立方式-- 第一種新增主鍵的方式 CREATE DATABASE javaee20; USE javaee20; CREATE TABLE student( sid INT PRIMARY KEY, sname VARCHAR(30) ); -- constraint 約束 主鍵 Django-多對多關係的三種建立方式-forms元件使用-cookie與session-08目錄 表模型類多對多關係的三種建立方式 django forms 元件 登入功能手寫推理過程 整段程式碼可以放過來 forms 元件使用 forms 後端定義 mybatis之接口方法多參數的三種實現方式自動 spa commit col pri true keys use 數據 關鍵代碼舉例: DaoMapper.xml 1 <!-- 傳入多個參數時,自動轉換為map形式 --> 2 <insert id="insertByCol iOS開發技術之實現tableView左滑刪除的三種操作方式bject 新名字 app alert ecan sage LEDE dev ati p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "PingFang SC"; color: #000000; background Oracle中PL/SQL之 while、for、loop 三種迴圈方式的使用PL/SQL while、for、loop 三種迴圈方式的使用 1、WHILE ... LOOP ... END LOOP 語法: WHILE 條件 LOOP 語句; END LOOP; 例子:輸出1到5的數字 declare num number : 建立JAVA執行緒的三種主要方式程式 程序 執行緒 程式: 一組計算機指令有序的集合 程序: 具有一定功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的一個獨立單位。 執行緒: 執行緒是程序的實體,是cpu分派和排程的基本單位,它是比程序更小的能獨立執行的基本單位。執行緒自己基本上不擁有系統資源 |