关闭生成的 UITextfields

Posted

技术标签:

【中文标题】关闭生成的 UITextfields【英文标题】:Dismiss generated UITextfields 【发布时间】:2013-04-19 09:48:17 【问题描述】:

我在滚动视图上动态生成UITextfields,因为用户在UITextfield 中输入数字(可以说它是“A”)并点击一个按钮。但是我需要做的是,当用户在UITextfields 中重新输入号码时,之前显示的UITextfields 必须消失,并且必须生成新的UITextfields`。

for (UIView *field in self.scrollView.subviews)

     if([field isKindOfClass:[UITextField class]])
     [field removeFromSuperview];

例如,如果我首先生成 7 UITextfields,然后我再次编辑“A”并将 3 作为值,则只有 3 UITextfields 必须可见。 但在我的代码中,3 UITextfields 被 7 覆盖,但之前也显示。

【问题讨论】:

当您在文本字段中重新输入数据时,您想删除旧数据吗? 是的,之前生成的 textfeilds 也是.. 如何添加文本字段?如果可能,请发布代码 准确告诉我们您需要做什么。恕我直言,您做错事了。 @jennis tis 是我生成 textfeilds 的方式 - (void)dynamicTextfeildsPhone string = Points.text;点值 = [字符串 intValue]; txtFldFrame1 = [[UITextField alloc] initWithFrame:CGRectMake(45,130,60,30)]; for (x=1; x 【参考方案1】:

但是,如果您可以替换其中的文本,并且如果您想要动画,那么您是否重新生成了新的文本字段,那么您可以隐藏和取消隐藏相同的文本字段..

【讨论】:

也这样做了,但在取消隐藏第一个文本字段后也显示了 所以在取消隐藏之前更改要在新文本字段中显示的文本字段的文本 您可以使用标签来隐藏/取消隐藏特定的文本字段【参考方案2】:

在您的 reloadTxt 输入法中设置以下代码。当用户点击按钮时调用此方法。

-(void)reloadTxtinput 

   for(UIView *subview in [scrollview subviews]) 
      if([subview isKindOfClass:[UIButton class]]) 
        [subview removeFromSuperview];
       else 
             //Do nothing
      
  


【讨论】:

【参考方案3】:

我已经尝试过这段代码,这对我有用

for (y=1;y<=Pointsvalue;y++)

    UITextField *txtField =(UITextField *)[self.view viewWithTag:y+Pointsvalue];
    if (txtField.tag == y+Pointsvalue)
    
        [txtField removeFromSuperview];
        [Feilds2Array removeAllObjects];
    

【讨论】:

以上是关于关闭生成的 UITextfields的主要内容,如果未能解决你的问题,请参考以下文章

如何关闭 Play! 的 javascript 反向路由生成?

生成时自动关闭 Div

Delphi 的条码生成库 [关闭]

如何动态生成名片[关闭]

任何生成html表单的工具[关闭]

为多域生成 CSR [关闭]