ios - 从 Storyboard 实例化时,未应用 Interface Builder 中定义的样式元素

标签 ios xamarin.ios storyboard xamarin uistoryboard

我有一个在 Xamarin.iOS(C#、Monotouch)中开发的 iOS 应用程序,其中主要 UI 不是基于 Storyboard的。 (我这样做是因为我的应用程序在纵向和横向方向上需要结构不同的布局,以编程方式实现这一点比通过 IB 和 Storyboard要容易得多。)

我的问题是,我现在正尝试使用 Storyboard 来开发一个简单的对话框,但是当我实例化该对话框时,结构就在那里,但没有应用在 Interface Builder 中定义的样式元素。我读过的所有内容似乎都表明这应该发生。这尤其成问题,因为大多数样式元素在界面初始化后无法修改。

这是我进行实例化的代码:

UIStoryboard sb = UIStoryboard.FromName("StoryboardAppSettings", null);
var vc = sb.InstantiateViewController("TableViewControllerAppSettings");
UIViewController settingsVC = vc as UIViewController;
PresentViewController(settingsVC, true, null);

我已经定义了一个要“分组”的 UITableView,但它没有。我有两个 UISwitch 元素,其中定义了未应用的颜色。我有一些按钮的色调没有被应用。

(如果我设置一个断点并深入查看 View Controller 数据结构,我发现所有这些参数都设置正确......当实现层次结构时它们似乎被忽略了。)

我做错了什么?

最佳答案

我发现问题出在我设置 UIView.Appearance.BackgroundColor 上。似乎当您这样做时,UIView.Appearance.BackgroundColor 总是会覆盖 UISwitch.OnTintColor。 (在我看来,这是一个错误,可能在 iOS 中,但我可能误解了 Appearance API 应该如何工作。我的期望是可以在更具体的级别(后代 View )覆盖通用的全局设置(如 UIView.Appearance)或特定的实例化),我相信这是它适用于大多数其他外观属性的方式。UISwitch.OnTintColor(以及 UISwitch.TintColor 和 UISwitch.BackgroundColor,但不是 UISwitch.ThumbTintColor)似乎是异常(exception)(因此是错误), 不是规则。

关于ios - 从 Storyboard 实例化时,未应用 Interface Builder 中定义的样式元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20826693/

相关文章:

C#/MonoTouch : how to call an async method when a ViewController is created/appears

xamarin.ios - this.NavigationController 为空

c# - MonoTouch 的 QR 库?

iphone - 运行时问题 - 使用 performSegueWithIdentifier 时出现 "Nested push animation"

wpf - WPF:另一个线程拥有的 Storyboard 循环对象

添加 cordova fabric 插件后 iOS 构建失败

ios - 自动布局的 UIDynamicAnimation 问题

iphone - UITableView 刷新导航 Controller 中的数据

ios - 设置UILabel的背景为透明黑色

ios - 用于在 iOS 8 中显示 NSData 的 WKWebView loadData 替代方案(UIWebView 除外)