如何在自定义函数中创建动态小部件,并在viewDidLoad中调用它们



由于我是iOS开发的新手,我想知道应该如何创建一个自定义方法来创建TextField或按钮,因为如果我将所有动态小部件都放在viewdidLoad方法中,那么将整个代码放在一个函数中会变得非常巨大,也不是一个好的做法。

这是我的viewDidLoad方法

-(void)viewDidLoad{
[super viewdidLoad];
self.textFiled = [[UITextField alloc] initWithFrame: CGRectMake(10.0f,30.0f,3000.0f,30.0f)];
self.textField.delegate = self;
self.textField.borderStyle = UItextBorderStyleRoundedRect;
[self.view addSubView:self.textField];
}

在这个方法中还有更多类似这样的动态小部件。现在我尝试创建一个自定义函数来创建一个动态文本字段,并在viewdidLoad 中调用它

-(TextField)createDynamicTextField :(TextField *) textField{
//Do Something Here
}

我不知道在这里之后该怎么办。

请告诉我如何在这个自定义UITextField类型方法中创建动态TextField,并在viewDidLoad中调用它。由于它是UITextField类型的函数,我将返回文本字段并存储在上创建的全局文本字段中

您可以这样做:

- (UITextField *)createDynamicTextField
{
    UITextField *tempTF = [[UITextField alloc] initWithFrame:CGRectMake(10.0f,30.0f,3000.0f,30.0f)];
    tempTF.delegate = self;
    tempTF.borderStyle = UITextBorderStyleRoundedRect;
    return tempTF;
}

然后在您的视图中DidLoad:

self.textField = [self createDynamicTextField];
[self.view addSubview:self.textField];

或者,如果UITextField大小相同,您甚至可以将其子类化,并创建一个名为的新方法

- (UITextField *)initCustomFieldWithDelegate:(id<UITextFieldDelegate>)delegate
{
    self = [super initWithFrame:CGRectMake(10.0f,30.0f,3000.0f,30.0f)];
    if (self) {
        self.delegate = delegate;
        self.borderStyle = UITextBorderStyleRoundedRect;
    }
    return self;
}

那么您的类中就不需要这些代码了。

it becomes so huge and also not a good practice to place whole code in one functions.

然后把它分成几个小函数,一个用来添加按钮,一个用于添加文本字段。。。。

老实说,不能因为代码太长就停止在viewDidLoad中添加内容。

在这个自定义方法中,只需添加视图:

-(TextField)createDynamicTextField :(TextField *) textField{
self.textFiled = [[UITextField alloc] initWithFrame: CGRectMake(10.0f,30.0f,3000.0f,30.0f)];
self.textField.delegate = self;
self.textField.borderStyle = UItextBorderStyleRoundedRect;
[self.view addSubView:self.textField];
}

相关内容

最新更新