在中间增加滚动视图的高度

3
我有一个滚动视图,其中有一个加号按钮,用于在添加按钮下方添加额外的文本字段。请参考下面的截图。

enter image description here


1
在按钮点击时,您需要创建UITextfield,并为其设置约束。 - Kishore Kumar
使用视觉约束,对你来说很容易。 - Kishore Kumar
我没有使用自动布局,而是通过编程的方式完成了所有事情。 - user4815082
我想要添加自动布局,该怎么做? - user4815082
现在有一种情况,你需要设置视觉约束而不是复杂的约束。 - Kishore Kumar
显示剩余11条评论
4个回答

1
- (IBAction)Textfield:(id)sender
{  
  i++;//global declaration int

  UITextField *textfield=[[UITextField alloc]init];
  textfield.tag=i;
  NSDictionary *viewsDictionary = {@"give-textfield-name here":self.textfield};
    NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[give-textfield-name]-10-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:viewsDictionary];
    [self.textfield addConstraints:constraints];

}

可视化约束示例:
V:|-10-[give-textfield-name]-10-|

V代表垂直约束

| 视图控制器左右边距

10表示距离左边界的间距。

enter image description here

这是VisualConstraints的非常基础的内容,您需要进一步开发它。

还有一件事,在添加每个文本字段后,您需要更新scrollviewcontent大小。

将视图控制器设置为自由高度和宽度。[也要更新此内容]

希望这能帮助您开始编程。

这是Visual Constraints的链接

这是Autolayout的链接


看起来会起作用,你能给我更多的解释吗?这意味着我从未尝试过自动布局编程。 - user4815082
@user4815082 是的,你需要切换到自适应布局,这将减少你的时间并使你更容易地工作。 - Kishore Kumar
@user4815082,我已经更新了我的答案,你可以参考链接。 - Kishore Kumar
@user4815082,理解自动布局和视觉约束只需要一天时间,但即使之后我仍在学习,这是非常容易的。 - Kishore Kumar
谢谢你,Kishore。看起来除了约束条件之外,没有其他的方法了。我以为可能有某个函数可以在某个时候增加滚动视图的高度。如果你找到了像我说的那样的东西,请告诉我。我接受你的答案。 - user4815082

0

首先,您需要将此视图分成三个uiviews。

  1. 第一个包含您想要在button点击时显示的两个text field部分

    2.第二个包含该text fields的上半部分

    3.第三个包含该text fields的下半部分

然后为第一个视图设置height constraintvertical spacing bwn

第一-第二第二-第三

第一次,第一个视图height constraint必须为零

第二-第三vertical spacingpriority大于第一-第二priority

按钮被点击时,改变第一个视图高度,并且改变那个垂直空间优先级


0

您可以重写viewDidLayoutSubviews方法,设置滚动视图的内容大小,然后调用[self.view layoutIfNeeded]


0

点击加号按钮创建文本框,并向文本框添加标签以从中获取数据。

   let objForTextfield = UITextField()
        objForTextfield.frame = CGRectMake(0, (scrollView.frame.origin.y + scrollView.frame.size.height ), 100, 100)
        self.view.addSubview(objForTextfield)
        scrollView.contentSize = CGSizeMake(scrollView.subviews.last?.frame.origin.y)!+(scrollView.subviews.last?.frame.size.height)!

你没有理解我的问题。我想在点击按钮时在子视图之间添加文本字段。 - user4815082

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接