Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.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
如何创建iOS屏幕动态?_Ios_Objective C_Swift_Storyboard_Autolayout - Fatal编程技术网

如何创建iOS屏幕动态?

如何创建iOS屏幕动态?,ios,objective-c,swift,storyboard,autolayout,Ios,Objective C,Swift,Storyboard,Autolayout,如何创建动态变化的iOS布局。假设我想创建一个如下屏幕:- 默认情况下,此屏幕是针对个人用户的,但当我点击公司按钮时,用户界面应更改为此 我知道我可以通过编码隐藏textbox和textarea,但我不知道如何使它们显示在其他控件和保存按钮之间,并自动更改保存按钮的位置,这应该在所有屏幕大小、横向和横向模式下都能工作。我不知道如何进一步解释和搜索此问题在视图中放置“公司名称”和“公司地址”字段。这两个字段的容器视图将具有一个约束,其中“保存”按钮始终位于其下方,“个人”和“公司”按钮位于其上

如何创建动态变化的iOS布局。假设我想创建一个如下屏幕:-

默认情况下,此屏幕是针对个人用户的,但当我点击公司按钮时,用户界面应更改为此

我知道我可以通过编码隐藏textbox和textarea,但我不知道如何使它们显示在其他控件和保存按钮之间,并自动更改保存按钮的位置,这应该在所有屏幕大小、横向和横向模式下都能工作。我不知道如何进一步解释和搜索此问题

在视图中放置“公司名称”和“公司地址”字段。这两个字段的容器视图将具有一个约束,其中“保存”按钮始终位于其下方,“个人”和“公司”按钮位于其上方

在该视图的ViewController的代码中,覆盖
viewWillLayoutSubviews
。在这里,您可以设置这样的逻辑:如果选择了Company,那么前面提到的容器视图具有一定的高度,“Company Name”和“Company Address”感觉被隐藏=false,并且它们的大小和位置根据容器视图的尺寸和位置而改变

编辑:

我忘了提到您应该在容器视图以及ViewController中的公司名称和公司地址字段中设置IBOutlets。下面是示例代码:

Swift中的示例代码:

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()

    if companyButtonPressed {
        var newFrame = containerView.frame
        newFrame.size.height = 600// or something

        containerView.frame = newFrame
    }
}   

还有其他方法来完成你想要做的事情。类似于子类化容器视图并替代drawRect。探索者和自己发现。

@rmaddy为什么要删除swift和OBJECT-c标记?它可能还需要编码?你认为不需要任何一种语言的编码就可以完成吗?你让我更困惑了。请你用代码解释一下,我只知道我必须填写“公司名称”和“公司地址”视图中我可以执行但可能是的字段我可以尝试按您所说的设置约束,但不知道有关
覆盖视图willlayoutsubviews
@varunaharia的任何信息请参见编辑。我认为您也可以对容器视图的子视图设置一些约束,只需通过使用containerView.clipsToBounds=true并将containerView.height设置为0来隐藏它们。这样,您就不必对“公司”字段进行任何计算。