1. 程式人生 > >Swift3.0之cell的三種建立方式

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.0cell建立方式

該文介紹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分派和排程的基本單位,它是比程序更小的能獨立執行的基本單位。執行緒自己基本上不擁有系統資源