Ios 要在整个应用程序中使用的通用UI控件

Ios 要在整个应用程序中使用的通用UI控件,ios,objective-c,Ios,Objective C,我想创建一些控件,通过代码使用,这样我就不会到处重复代码。 我的意思是我需要创建自定义控件并在ViewController中使用它 例如: Uitextfield,在触摸屏内部显示日期选择器弹出窗口 带搜索按钮的uitextfield 如果您计划在应用程序中经常使用此类控件,您可以使用类和实例方法创建一个helper类,这些类和实例方法绘制您需要的控件,并在调用该方法时返回它 #import <Foundation/Foundation.h> @interface Custom

我想创建一些控件,通过代码使用,这样我就不会到处重复代码。 我的意思是我需要创建自定义控件并在ViewController中使用它

例如:

  • Uitextfield,在触摸屏内部显示日期选择器弹出窗口
  • 带搜索按钮的uitextfield

如果您计划在应用程序中经常使用此类控件,您可以使用类和实例方法创建一个helper类,这些类和实例方法绘制您需要的控件,并在调用该方法时返回它

#import <Foundation/Foundation.h>

@interface CustomControls : NSObject
//declare your methods 


@end
#导入
@接口自定义控件:NSObject
//声明您的方法
@结束
带搜索按钮的uitextfield

这是一个很好的例子。我将通过反复加载nib文件来解决此类问题。每次你这么做,你都会得到一份新的副本

创建包含视图的新接口文件(.xib)。使视图不可见(背景色=透明色)。将文本字段和搜索按钮放入其中。现在,每次加载.xib文件时,都会得到一个没有人可以看到的视图(在.xib中的视图),其中包含一个他们可以看到的文本字段和搜索按钮

当我说“加载.xib文件”时,我指的是这类事情:

 NSArray* objs = [[NSBundle mainBundle] loadNibNamed:@"MyNib" owner:self options:nil];

现在,
objs[0]
是nib中单个顶级UIView的副本!现在,您可以使用
addSubview:
或其他方法将UIView粘贴到界面中。

因此,如果需要创建UIExField自定义,我将创建一个返回它的方法,对吗?!但是我有一个表单已经包含uitextfield,您可以创建一个
xib
文件,并随时在代码中调用它。所以您只做了一次,然后多次使用;)以及如何在我的新xib中插入它,我的意思是我有许多UITExFields代码,您将加载xib并在需要的地方将不可见的视图(包含文本字段和搜索按钮)插入到界面中。好的,我创建了一个viewcontroller,其中包含所有代码,如何在设计时将其添加到另一个xib中,很抱歉,我建议您不要使用视图控制器,也不要在设计时将其添加到xib。在主xib中,可以放置占位符视图。但是(正如我一直说的)您要做的是在运行时以代码的形式加载xib,并从中取出视图,然后在运行时以代码的形式将其放入您的界面中(可能将其放在占位符视图所在的位置)。这就是我到目前为止所做的