【问题标题】:How to make programmatic changes to views in the controller appear in the storyboard如何对控制器中的视图进行编程更改出现在情节提要中
【发布时间】:2016-05-04 20:52:43
【问题描述】:

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

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

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

我在哪里使用editText 框和一个按钮来充当我在ViewController.cs 中对它们实际执行的操作的占位符。

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

这些更改似乎显示出来了,但我所有的故事板 iOS 设计器视图仍然存在。我正在尝试查看是否有办法在情节提要上反映控制器中所做的更改。

TL;DR:我正在尝试以编程方式在我的 ViewController.cs 文件中更改一些视图。这些视图最初是通过 iOS 设计器添加的,出于自定义目的,它们在控制器中进行了编辑。我想查看我在控制器中的视图上所做的视觉更改,反映在 iOS 设计器中以及在调试时。

【问题讨论】:

    标签: c# ios uiview uiviewcontroller xamarin


    【解决方案1】:

    听起来您正试图从一个视图全部以编程方式完成的项目转变为实现故事板。这是一个变化,需要一些时间来转换视图。

    在 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),权衡了每个问题的优缺点。所以可能最后一位开发人员认为最好以编程方式完成

    【讨论】:

    • 感谢您的回复。这个项目仍处于起步阶段(iOS 应用程序只有一个场景)所以我可能会考虑让第一页主要基于代码,然后从这里开始使用故事板(这可能吗?)或者我可以从头开始重写并使用所有故事板的方法来解决它
    【解决方案2】:

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

    我不知道您将如何(或者即使您可以)在 Xamarin/C# 中使用 IBDesignable。如果 Xamarin 不支持它,那么您可能不走运。

    我建议你在网上搜索“Xamarin IBDesignable”。

    【讨论】:

      猜你喜欢
      • 2011-12-23
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 2013-06-21
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多