Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 创建可自定义uiview的正确方法_Objective C_Ios - Fatal编程技术网

Objective c 创建可自定义uiview的正确方法

Objective c 创建可自定义uiview的正确方法,objective-c,ios,Objective C,Ios,这个问题是关于“风格”的,因为我认为这是一个非常常见的问题,我正在寻找一个优雅的解决方案。 我已经创建了一些“高级”UIView,并试图使它们非常可定制。 通常我在自定义init方法内创建UIView结构,但我需要知道init方法内所有可自定义参数的值,因此有时我需要一个非常长的init方法,如: initWithFrame:color:font:verticalspace:verylonglist: 我尝试使用委托设计模式,但我还需要在init方法中传递委托 我实际的最佳解决方案是将init方

这个问题是关于“风格”的,因为我认为这是一个非常常见的问题,我正在寻找一个优雅的解决方案。 我已经创建了一些“高级”UIView,并试图使它们非常可定制。 通常我在自定义init方法内创建UIView结构,但我需要知道init方法内所有可自定义参数的值,因此有时我需要一个非常长的init方法,如:

initWithFrame:color:font:verticalspace:verylonglist:

我尝试使用委托设计模式,但我还需要在init方法中传递委托

我实际的最佳解决方案是将init方法留空,并将布局的所有内容移动到“configure”方法中。每次我偶然发现一个属性,比如背景色或字体,我都会调用这个方法并重建视图

我认为有一个最好的方法来解决这个问题。。。
我很想看看UITableView类的代码,因为使用该类可以在init方法之外传递委托

查看类似于
ui按钮
ui标签
的内容。它们都有大量可配置的方面,但是,要简单地创建其中一个对象的实例,它们只需要很少的信息

通常,提供init方法,允许类的使用者指定类工作所需的最少信息量

如果您想给消费者一个用一组值初始化类的方法,请考虑使用某种类型的<代码> iNITWORD字典:方法,该方法采用了<代码> NSCORCHONE>代码>参数。这将使方法名保持简短,并允许用户为类自定义任意数量的设置


您还可以考虑为消费者提供一个具有某种标准值集的实例的方式。例如,code>UITableViewCell有一个

initWithStyle:reuseIdentifier:
方法。重要的部分是样式-
UITableViewCell
提供了几种默认样式,如
UITableViewCellStyleDefault
UITableViewCellStyleSubtitle
,我不知道这是否是标准/最佳做法,但我在这种情况下使用字典,并将其传递给
initWithDictionary
初始值设定项。也可以创建一个类方法,该类方法返回一个“默认设置”类型的字典,然后可以对其进行自定义(和委托设置),以便在使用该类时不必指定每个参数