gpt4 book ai didi

ios - monotuch - 可重复使用的 iOS 自定义 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:17:26 26 4
gpt4 key购买 nike

好的,所以这个可能有点挑战,因为它是单点触控...

我有一个可重复使用的自定义工具栏,我计划在多个屏幕上重复使用。

我想在 Interface Builder 中创建工具栏

我希望能够从任何 View Controller 更新工具栏上的标签。所以我可能有五个不同的 View Controller ,它们都有这个工具栏,并且可以更新上面的标签。

所以我的问题是:

  1. 我什至如何开始在 MonoTouch 中子类化 UIView?如果我创建一个新的“iPhone View”,它给我的只是一个 Nib 。我没有地方可以联系网点或事件。

  2. 鉴于您能够告诉我如何设置 MonoTouch 以拥有用于子类化 UIView 的 C# 代码文件,以便我可以处理事件和访问属性,我如何将它连接到 nib?我看到很多人说在 Objective-C 中使用 initWithFrame 来调用 loadNibNamed,但这并不能正确地转换为 MonoTouch。我如何在 MonoTouch 中做到这一点?

  3. 鉴于#1 和#2 已满足,我如何将此自定义工具栏加载到任何 View Controller 中,并将其添加到屏幕上的特定坐标?在 MonoTouch 中执行 initWithFrame CGRect 似乎没有简单的路径

如果有人能解决这个问题,那你太棒了!!!!

提前致谢!

最佳答案

经过大量挖掘,我终于找到了答案。

最有用的教程在这里:

http://sgmunn.com/blog/2012/03/using-loadnib-to-load-a-view/

基本上,您需要创建自定义 subview ,在界面生成器中设置它们,然后在 MonoTouch 端做一些简单的映射。但是让我偏离这个例子的关键点是:

在子类化 UIView 时,您必须实现 IntPtr 的基本构造函数

当您这样做时,一切都会水到渠成。您连接了 Outlets 和 Actions,可以随意操纵它们。

编辑:比仅仅链接更具描述性......

How do I even begin to subclass UIView in MonoTouch? If I create a new "iPhone View", all it gives me is a nib. I have no place to hook up outlets or actions.

创建一个新的 iPhone View ,它会创建一个 Nib 。打开 Nib ,将“自定义类”设置为您的自定义类。 MonoTouch 应该会自动生成它。如果没有,则创建一个新的 C# 类和子类 UIView,但请确保为 IntPtr 创建构造函数。如果您使用 Storyboard,当您调用 Storyboard.InstantiateViewController() 时,它会为您填充 IntPtr 值。请注意,如果您确实使用 Storyboard.InstantiateViewController,则还需要将标识符设置为自定义类的名称。

创建该 iPhone View 后,您应该能够在 IB 中打开“代码 View ”并连接您的导出和操作。

Given that you are able to tell me how to set up MonoTouch to have C# code files for subclassing UIView so I can handle events and access properties, how do I hook it up to the nib? I see a lot of people saying to use initWithFrame to call loadNibNamed in Objective-C, but this doesn't correctly translate to MonoTouch. How would I do that in MonoTouch?

MonoTouch 中没有initWithFrame: 或CGRect,您使用RectangleF。如果以编程方式加载 nib,则可以使用接受 RectangleF 的构造函数并使用它来设置 x、y、宽度、高度。

Given that #1 and #2 are fulfilled, how do I load this custom toolbar into any viewcontroller, and add it at specific coordinates on the screen? Doing the initWithFrame CGRect stuff doesn't seem to have a simple path in MonoTouch

对于 Storyboard ,请使用 Storyboard.InstantiateViewController(确保您在 IB 中设置了标识符)。对于其他所有内容,请使用:

var nibObjects = NSBundle.MainBundle.LoadNib("YourViewName", theController, null);
var instantiatedView = (YourClassName)Runtime.GetNSObject(nibObjects.ValueAt(0));

如上链接所示。

尽情享受吧! - 艾莉森。

关于ios - monotuch - 可重复使用的 iOS 自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13768511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com