我最近继承了一个Xamarin项目,我将参与iOS项目。经过几个教程我觉得我已经准备好了,但是我之前的人没有使用故事板或控制器!他们在名为LoginScreens.cs的文件中完成了所有视图的自定义(基本上是控制器文件的外观)。
出于学习目的和过渡的简易性,我想在这个项目中获得一个故事板。所以我创建了一个标题为Main
的故事板,并添加了一个ViewController和基本副本,并将LoginScreen.cs
中使用的视图自定义代码粘贴到我的控制器中。
更具体一点,我有Main.Storyboard
看起来像这样:
我在ViewController.cs
使用editText框和一个按钮作为占位符来实现我对他们的实际操作。
这一切似乎都在正确注册和构建,但是当我在iPhone 6s iOS 9.3上运行调试器时,我得到以下内容:
这些更改似乎显示,但我的所有故事板iOS设计器视图仍然存在。我试图看看是否有办法反映故事板上控制器所做的更改。
TL; DR:我试图在ViewController.cs文件中以编程方式更改某些视图。这些视图最初是通过iOS设计器添加的,并且为了自定义目的,它们在控制器中进行了编辑。我希望看到我在控制器中的视图上进行的视觉更改,反映在iOS设计器中以及何时进行调试。
答案 0 :(得分:2)
听起来你正试图从一个以编程方式完成视图到实现故事板的项目。这是大更改,需要一些时间来转换视图。
在cs文件中会有像Add(passwordTextFeild)
这样的东西,它们会为你的故事板视图添加更多的视图,因此你可以在登录视图中获得很多视图。您无法在故事板中看到这些内容,因为它们是在运行时完成的。
如果您正在寻找IBDesignable,那么对于自定义控件更是如此,您仍然需要添加代码才能从故事板中的.cs文件中查看更改。
检查我的问题IBInspectable/IBDesignable in Xamarin
可能不是您想听到的内容,但iOS项目中的UI往往采用以下三种方法之一完成:
有很多问题/博客帖子(甚至是video),加重了每个问题的利弊。因此,最后一位开发人员可能认为最好以编程方式执行此操作
答案 1 :(得分:0)
有一个设置IBDesignable
,您可以将其添加到Swift或Objective-C中的UI类声明中。这告诉Xcode这些UI对象具有您希望在Interface Builder中显示的自定义界面。
我不知道你将如何(或者甚至可以)在Xamarin / C#中使用IBDesignable。如果Xamarin不支持,那么你可能运气不好。
我建议您搜索" Xamarin IBDesignable"在网上。