如何对控制器中的视图进行编程更改显示在故事板

时间:2016-05-04 20:52:43

标签: c# ios uiview uiviewcontroller xamarin

我最近继承了一个Xamarin项目,我将参与iOS项目。经过几个教程我觉得我已经准备好了,但是我之前的人没有使用故事板或控制器!他们在名为LoginScreens.cs的文件中完成了所有视图的自定义(基本上是控制器文件的外观)。

出于学习目的和过渡的简易性,我想在这个项目中获得一个故事板。所以我创建了一个标题为Main的故事板,并添加了一个ViewController和基本副本,并将LoginScreen.cs中使用的视图自定义代码粘贴到我的控制器中。

更具体一点,我有Main.Storyboard看起来像这样:

enter image description here

我在ViewController.cs使用editText框和一个按钮作为占位符来实现我对他们的实际操作。

这一切似乎都在正确注册和构建,但是当我在iPhone 6s iOS 9.3上运行调试器时,我得到以下内容:

enter image description here

这些更改似乎显示,但我的所有故事板iOS设计器视图仍然存在。我试图看看是否有办法反映故事板上控制器所做的更改。

TL; DR:我试图在ViewController.cs文件中以编程方式更改某些视图。这些视图最初是通过iOS设计器添加的,并且为了自定义目的,它们在控制器中进行了编辑。我希望看到我在控制器中的视图上进行的视觉更改,反映在iOS设计器中以及何时进行调试。

2 个答案:

答案 0 :(得分:2)

听起来你正试图从一个以编程方式完成视图到实现故事板的项目。这是更改,需要一些时间来转换视图。

在cs文件中会有像Add(passwordTextFeild)这样的东西,它们会为你的故事板视图添加更多的视图,因此你可以在登录视图中获得很多视图。您无法在故事板中看到这些内容,因为它们是在运行时完成的。

如果您正在寻找IBDesignable,那么对于自定义控件更是如此,您仍然需要添加代码才能从故事板中的.cs文件中查看更改。

检查我的问题IBInspectable/IBDesignable in Xamarin

  

点击此官方链接:https://developer.xamarin.com/guides/ios/user_interface/designer/ios_designable_controls_walkthrough/

可能不是您想听到的内容,但iOS项目中的UI往往采用以下三种方法之一完成:

  • 所有以编程方式
  • 故事板
  • Xibs

有很多问题/博客帖子(甚至是video),加重了每个问题的利弊。因此,最后一位开发人员可能认为最好以编程方式执行此操作

答案 1 :(得分:0)

有一个设置IBDesignable,您可以将其添加到Swift或Objective-C中的UI类声明中。这告诉Xcode这些UI对象具有您希望在Interface Builder中显示的自定义界面。

我不知道你将如何(或者甚至可以)在Xamarin / C#中使用IBDesignable。如果Xamarin不支持,那么你可能运气不好。

我建议您搜索" Xamarin IBDesignable"在网上。