[英]UITableView Custom Class programmatically?
我想知道这是怎么回事:
可以通过编程方式完成吗? 它只是设置uitableview数据源并委托给FadingTableView
类吗? 通过在IB中设置自定义类到底是怎么回事?
谢谢。
在这里,您告诉IB表视图实例实际上是FadingTableView
的实例。
如果要以编程方式创建此表视图,请使用这些行
FadingTableView *tableView = [[FadingTableView alloc] init.....];
为什么在IB中设置该类是因为IB具有内置对象,因此UITableView
但是你想要你的表视图在IB中不存在,因此你将你的类名放在那里,以便它将创建FadingTableView
而不是UITableView
的FadingTableView
。
不,它不用于连接数据源或委托。
请详细说明你的问题,因为它没有表明它的目的。我认为你要求通过xib连接数据源和委托之间的差异,并通过类以编程方式声明它。它们之间没有太大的区别,但逻辑上如果你看到IBAction和IBOutlet只是让编译器知道对象已经通过接口构建器定义的标识符(现在在xCode的更高版本中与xcode集成).IBAction被定义为void,而IBOutlet刚刚定义.Apple的定义如下: -
#ifndef IBOutlet
#define IBOutlet
#endif
#ifndef
IBAction #define
IBAction void
#endif
两者都充当了编译器的标识符。它只是告诉编译器某些方法是通过接口构建器定义的。
这样做是使用您在源代码中提供的UITableView的子类(显然),并在加载nib时实例化它。 IT并不意味着datasource
和delegate
是连接的。
要在代码中执行相同的操作,您必须从xib文件中删除TableView并创建它,例如在ViewController的viewDidLoad
中使用[[FadingTableView alloc] init…]
表示该xib文件,设置frame
,外观, delegate
, datasource
和手动所有其他属性。
你可以使用object_setClass(tableView, [CustomClass class]);
并且必须包含#include <objc/runtime.h>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.