Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Objective c 如何根据用户更改滚动视图中的UIImage';s输入_Objective C_Ipad_User Interface_Uiscrollview - Fatal编程技术网

Objective c 如何根据用户更改滚动视图中的UIImage';s输入

Objective c 如何根据用户更改滚动视图中的UIImage';s输入,objective-c,ipad,user-interface,uiscrollview,Objective C,Ipad,User Interface,Uiscrollview,好了,伙计们,我正琢磨着如何完成这个任务,所以我想把它公布给全世界 实际上,客户机想要的是一种根据用户选择“是”还是“否”选项来切换部分视图的方法。我的问题是,我将如何实现这一目标 请允许我提供更多细节。在这个特定的应用程序中,有一个表单(一个带有自定义文本字段、选择器视图、开关、滑块和其他UI元素的表单),所有这些表单都已在故事板中布局,然后编程实现功能。在这个表单的四分之三处,用户将收到一个“是”或“否”选项以及每个选项的一个按钮。诀窍在于,每个视图都需要有自己的UI元素(文本字段、滑块和按

好了,伙计们,我正琢磨着如何完成这个任务,所以我想把它公布给全世界

实际上,客户机想要的是一种根据用户选择“是”还是“否”选项来切换部分视图的方法。我的问题是,我将如何实现这一目标

请允许我提供更多细节。在这个特定的应用程序中,有一个表单(一个带有自定义文本字段、选择器视图、开关、滑块和其他UI元素的表单),所有这些表单都已在故事板中布局,然后编程实现功能。在这个表单的四分之三处,用户将收到一个“是”或“否”选项以及每个选项的一个按钮。诀窍在于,每个视图都需要有自己的UI元素(文本字段、滑块和按钮),只有在选择其中一个选项时才会出现,并且只在“是”或“否”选项下方出现(上面的所有元素都需要保留,保持在同一位置并保留用户输入的信息)

例如:如果用户点击“是”按钮,下面将显示3行文本,后跟UIButton和文本字段。在此下方,将显示导航到其他ViewController的其他导航按钮。但是,如果用户点击“否”按钮,我刚才提到的所有项目都需要消失,相反,需要出现一组不同的文本字段、标签、按钮和背景图像。导航按钮还需要链接到其他ViewController,与“是”选项中的按钮不同。在这一点上,我建议客户在屏幕底部安装导航控制器是个好主意,但他们强烈反对,而是希望导航选项是“动态的”(或根据按下哪个选项而改变,“是”或“否”)

我曾想尝试通过编程的方式,简单地使用每个按钮加载不同的图像,效果很好。然后,障碍变成了双重的; 1) 当我尝试加载其他UI元素时,我无法将它们放在故事板中,因此它们会出现在零星的位置和位置 2) 所有这些都需要包含在滚动视图中,滚动视图还需要根据“是”和“否”选项下需要多少空间来更改其大小。当然,“是”部分比“否”部分小3倍


那么,关于如何实现这一切有什么想法吗?在这一点上我应该提到,客户机也不希望简单地导航到不同的ViewController,他们非常希望所有这些都发生在同一个屏幕上。我希望我有一些代码可以分享,但我们仍然在这个项目的“设计”方面,因此,编写的代码很少。任何建议都将不胜感激,因为我以前从未收到过这种类型的构建请求。

创建一个UINavigationController对象,并将您的视图(比如您的ViewController)设置为“是”和“否”按钮作为根视图控制器存在的位置,如下所示

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:yourViewController];
现在,当用户在ViewController视图上按YES/NO按钮时,您可以通过编程方式创建所有控件文本字段和按钮,并根据视图设置框架。像

UITextField *txtField = [[UITextField alloc] initWithFrame:CGRectMake(enter frame accordinglly)];
[self.view addSubview:txtField];
同样,您可以添加更多控件,如按钮或任何其他控件

之后,当用户按下任何按钮(您希望在其上显示另一个视图)时,您可以按下navController中的其他视图,如下所示

[navController pushViewController:otherViewController animated:YES];
您需要在ViewController中跟踪navController

    [navController popViewControllerAnimated:YES];
当您想返回时,只需从navController弹出视图

    [navController popViewControllerAnimated:YES];

PS:请注意内存释放。

谢谢这个解决方案suraj,今天晚些时候我会试一试,并将结果发回。再次感谢suraj,这并不是我在这个特定实例中寻找的解决方案(我只想更改ViewController内容的一部分,而不是整个ViewController)但是这个解决方案在测试中效果很好。谢谢你!谢谢@Slider257,我真的很高兴我的答案在你的问题中能以任何方式帮助你。我在这里遇到了一个小问题,不知道你有什么有用的建议。我通过编程创建了一些按钮,它们在视图中“显示”得很好。然而,当我点击它们时,它们不会像模拟器中的其他按钮那样给出下推动画。我还需要这些按钮来执行分段。我已经用自定义标识符设置了segues,但是我看到这项工作的唯一方法是给按钮一个iAction。但是,由于我已经处于另一个按钮(创建此视图的按钮)的iAction中,我无法启动另一个iAction。因此,如何在仍以编程方式显示这些按钮的同时,使用这些按钮执行自定义转换?