繁体   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