簡體   English   中英

UITableView自定義類以編程方式?

[英]UITableView Custom Class programmatically?

我想知道這是怎么回事: 在此輸入圖像描述

可以通過編程方式完成嗎? 它只是設置uitableview數據源並委托給FadingTableView類嗎? 通過在IB中設置自定義類到底是怎么回事?

謝謝。

在這里,您告訴IB表視圖實例實際上是FadingTableView的實例。
如果要以編程方式創建此表視圖,請使用這些行

FadingTableView *tableView = [[FadingTableView alloc] init.....];

為什么在IB中設置該類是因為IB具有內置對象,因此UITableView但是你想要你的表視圖在IB中不存在,因此你將你的類名放在那里,以便它將創建FadingTableView而不是UITableViewFadingTableView
不,它不用於連接數據源或委托。

請詳細說明你的問題,因為它沒有表明它的目的。我認為你要求通過xib連接數據源和委托之間的差異,並通過類以編程方式聲明它。它們之間沒有太大的區別,但邏輯上如果你看到IBAction和IBOutlet只是讓編譯器知道對象已經通過接口構建器定義的標識符(現在在xCode的更高版本中與xcode集成).IBAction被定義為void,而IBOutlet剛剛定義.Apple的定義如下: -

#ifndef IBOutlet
#define IBOutlet 
#endif  

#ifndef 
IBAction #define 
IBAction void 
#endif

兩者都充當了編譯器的標識符。它只是告訴編譯器某些方法是通過接口構建器定義的。

這樣做是使用您在源代碼中提供的UITableView的子類(顯然),並在加載nib時實例化它。 IT並不意味着datasourcedelegate是連接的。

要在代碼中執行相同的操作,您必須從xib文件中刪除TableView並創建它,例如在ViewController的viewDidLoad中使用[[FadingTableView alloc] init…]表示該xib文件,設置frame ,外觀, delegatedatasource和手動所有其他屬性。

你可以使用object_setClass(tableView, [CustomClass class]); 並且必須包含#include <objc/runtime.h>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM