1. 程式人生 > >iOS UI入門——使用Objective-C和Swift含tableViewCell的UITableViewCell基類的實現

iOS UI入門——使用Objective-C和Swift含tableViewCell的UITableViewCell基類的實現

繼承是面嚮物件語言的一種特性,在開發中經常用到。基類的存在也大大的方便了開發,能減少很多重複的程式碼。

Objective-C程式碼:

#import "BaseTableViewCell.h"

@implementation BaseTableViewCell

-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if
(self) { [self setupUI]; } return self; } -(void)setupUI{ //自定義UI佈局 } - (void)awakeFromNib { [super awakeFromNib]; // Initialization code } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state
} @end

讓自定義的UITableViewCell都繼承自這個BaseTableViewCell,然後只需要重寫setupUI方法,這個方法需要在.h檔案中宣告一下。這樣的話不用在每個自定義的UITableViewCell中都寫一次初始化方法。如果某幾個頁面的cell樣式相差不大,可以把共同的地方再寫一個基類,然後再寫一層差異的UITableViewCell讓它繼承共同點多的那一層,這樣就會減少很多重複的程式碼。

Swift程式碼:

import UIKit

class BaseTableViewCell: UITableViewCell {

    //必須要實現的方法,否則報錯
    required init?(coder
aDecoder: NSCoder)
{ super.init(coder: aDecoder) } override init(style: UITableViewCellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) self.setupUI() } func setupUI() { } override func awakeFromNib() { super.awakeFromNib() // Initialization code } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) // Configure the view for the selected state } }

這是一個基類,自定義的UITableViewCell繼承該類,實現setupUI()方法即可。繼承的例項:

import UIKit

class CustomTableViewCell: BaseTableViewCell {

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setupUI() {

    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }
}

這個基類只是簡單的提供了渲染UI的方法,如果直接用字典賦值的話,也可以寫一個賦值更新UI的方法來繼承,如果是用model的話,可以用id,也可以不提供賦值的方法,看個人開發習慣

相關推薦

iOS UI入門——Objective-CSwift下UITabBarController的使用

很多App啟動頁過後展示的就是選項卡也就是UITabBarController,這裡講的是最簡單的選項卡的實現,直接繼承自UITabBarController。 Objective-C程式碼: #import "MainTabBarViewController.h" #impor

iOS UI入門——Objective-CSwift下UIPageControl的使用

UIPageControl就是我們常說的小白點,常用於輪播圖,與UIScrollView一起使用。效果如圖: Objective-C程式碼: #import "ViewController.h" @interface ViewController ()<UIScrol

iOS UI入門——使用Objective-CSwifttableViewCell的UITableViewCell實現

繼承是面嚮物件語言的一種特性,在開發中經常用到。基類的存在也大大的方便了開發,能減少很多重複的程式碼。 Objective-C程式碼: #import "BaseTableViewCell.h" @implementation BaseTableVie

iOS UI入門——使用Objective-CSwift實現警告檢視操作列表(UIAlertView,UIActionSheet,UIAlertController)

警告彈框和操作列表在開發中常用到,iOS9之後,UIAlertView和UIActionSheet都會報黃色的警告,但是還是依然可以使用的。在這裡主要介紹一在這三個控制元件在Objective-C和Swift下的使用程式碼。 Objective-C程式碼: #import "Vi

Objective-C Swift 混編項目的小 Tips(一)

markdown nag tomat tac 發現 tps tor ips 名稱 本文主要閑聊一些 Objective-C 和 Swift 混編項目帶來的一些潛規則,希望能幫到對此感到疑惑的朋友。下面我們開始進入主題: 命名 官方 Guide 上只是簡單敘述(Usin

iOS開發之Objective-c的MD5/SHA1加密演算法的實現

Objective-c實現MD5和SHA1演算法相對還是比較簡單的,可以直接呼叫系統的C/C++共享庫來實現呼叫 MD5即Message Digest Algorithm 5(資訊-摘要演算法 5),用於確保資訊傳輸完整一致。是計算機廣泛使用的雜湊演算法之一 SHA即Se

iOS Objective-CSwift開發過程的詳細比較

前段時間,本人同時開發了兩個專案,一個用的OC,一個用的Swift。在使用中對兩種語言進行一次梳理與比較。 基礎檔案 OC Swift OC程式裡,一個類會有兩個檔案,.h和.m。.h可以寫屬性、方

iOS UI入門——Swift下WKWebView的使用

之前有寫過Objective-C語法下WKWebView的使用,基本包含了介面和與h5的互動,這裡主要寫Swift語法下WKWebView的使用。直接上程式碼吧,說明基本都在註釋裡。 import UIKit import WebKit class ViewController:

ios學習路線—Objective-C(裝箱拆箱)

概述 從前面的博文我們也可以看到,陣列和字典中只能儲存物件型別,其他基本型別和結構體是沒有辦法放到陣列和字典中的,當然你也是無法給它們傳送訊息的也就是說有些NSObject的方法是無法呼叫的,這個時候通常會用到裝箱boxing和拆箱unboxing。 其實各種高階語言基本上都有裝箱和拆 箱的過程,

iOS開發應該選擇Objective-C還是Swift

iOS開發需要知道Objective-C 當Apple釋出了Swift之後,我聽見人們都說:“趕快,我現在可以成為一個不用學習Objective-C的iOS開發者了。”在這裡我有三個建議想給這些人們。 1.如果你想成為一個iOS開發者,你仍然需要學習Objective-

iOS原生專案(Objective-C)整合React Native(0.57.3版本)圖文教程--(3)style的全部有效屬性

iOS原生專案(Objective-C)整合React Native(0.57.3版本)圖文教程–(3)style的全部有效屬性 Valid style props: [ "alignContent", "alignItems", "alignSelf", "aspe

iOS原生專案(Objective-C)整合React Native(0.57.3版本)圖文教程--(2)整合過程

iOS原生專案(Objective-C)整合React Native(0.57.3版本)圖文教程–(1)基本環境 iOS原生專案(Objective-C)整合React Native(0.57.3版本)圖文教程–(2)整合過程 文章目錄 iOS原生

iOS原生專案(Objective-C)整合React Native(0.57.3版本)圖文教程--(1)基本環境

文章目錄 iOS原生專案(Objective-C)整合React Native(0.57.3版本)圖文教程--(1)基本環境 1. Homebrew 2. Node 3. Yarn 4. react-nat

ios學習路線—Objective-C(深淺拷貝)

在ObjC中,什麼是深淺拷貝?  深淺拷貝分別指深拷貝和淺拷貝,即 mutableCopy 和 copy 方法。  copy複製一個不可變物件,而 mutableCopy 複製一個 mutable 可變物件。   非容器類物件  如NSString,NSNumber

ios學習路線—Objective-C(新特性)

1.方法順序無關 Objective-C類由宣告檔案h和實現檔案m組成,所有的public方法都在h檔案中宣告,private方法可以寫在m檔案中,但是在早期的編譯環境中需要注意方法的順序,例如下面的程式碼,在早期的編譯環境會給出警告: 類和方法宣告: @interface Obj

ios學習路線—Objective-C(Runtime訊息機制)

RunTime簡稱執行時。就是系統在執行的時候的一些機制,其中最主要的是訊息機制。對於C語言,函式的呼叫在編譯的時候會決定呼叫哪個函式( C語言的函式呼叫請看這裡 )。編譯完成之後直接順序執行,無任何二義性。OC的函式呼叫成為訊息傳送。屬於動態呼叫過程。在編譯的時候並不能決定真正呼叫哪個函式(事實證明,在編

iOS開發中使用OCswift的對比

背景: 為了更好地學習,本人決定將學習的swift和OC進行下對比。 對比: 1.import的類 OC:某個只要要使用某個類就要將該類import。 swift:如果是使用者自己建立類,其他類無需import可以直接使用。pod的一些三方類和系統的

從零開始學習swift語言(Objective-C轉學swift)-( 一 )簡介學習背景及開發工具

簡介學習背景 本人之前使用Objective-C做了三年左右的iOS開發,之前一直想學習swift語言可惜公司專案比較緊一直沒有時間.現在每天倒是可以抽時間來學習swift,之後我會在這裡記錄下來我的學習歷程,並且會列舉出swift語言和Objectiv

iOS開發筆記--Objective-C實現多繼承

我們都知道objective C不能像C++一樣支援多繼承,但是在OC的使用經常會碰到需要使用多繼承的情況。例如,ClassA中有methodA,ClassB中methodB,而現在需要使用這兩個類中的方法。如何按照C++的程式設計思路,毫無疑問採用多繼承就搞定

Objective-C Core Foundation 物件相互轉換的記憶體管理總結

Objective-C和 Core Foundation 物件相互轉換的記憶體管理總結 iOS允許Objective-C和 Core Foundation 物件之間可以輕鬆的轉換,拿 NSString 和 CFStringRef 來說,直接轉換豪無壓力: [cpp