iPhone 开发者 : UIImageview subclass interface builder - how to call custom initializer

标签 iphone interface-builder initialization subclass

我搞乱了 iPhone 的开发。我有一个 uiimageview 子类,我想用它来检测触摸。我已成功添加到 InterfaceBuilder,并且可以在应用程序中检测到 UIImageview 子类中的触摸,因此在这方面一切都很好。但是我的 UIImageView 子类有一个自定义初始值设定项,在界面生成器中创建它时不会调用它。

如果我手动初始化 UIImageview 并以编程方式添加它,我认为它会起作用,但随后我就失去了在界面生成器中“查看”我的位置的能力。

我怎样才能做到

1) 在界面生成器中“看到”代码中添加的 uiimageview? (不可能?) 2)当子类在interfacebuilder中实例化时调用我的自定义初始化程序。

谢谢


您好,感谢您的建议。我想我越来越了解 xib 和 viewcontroller 之间的关系了。

我现在成功地以编程方式添加了我的 UIImageView 子类,并使用我的自定义初始化程序覆盖了 InitWithFrame。

我想我读到 xib 调用“awakeFromNib”,所以我可以同样在其中添加我的初始化代码。我喜欢以编程方式添加它的想法,因为我有更多的控制权(尽管设置我的 IU 更困难)

还有一个相关问题。如果我在界面生成器中添加 UIImageView 子类。我可以看到它并检测到对其的触摸。如果我想在 View Controller 类中引用它,我是否有指向它的指针?即它有一个变量名吗?我自己创建的 UIImageViews 我显然知道它们叫什么......

最佳答案

您可能将指令放入了错误的初始化程序中。

根据documentation ,如果从 NIB 取消归档的对象符合 NSCoding 协议(protocol),则使用 initWithCode: 对其进行初始化;不符合 NSCoding 的对象使用 init 进行初始化。

在这种特殊情况下,UIImageView 确实符合 NSCoding。您可能希望调用 initWithFrame: 并将指令放入该方法中。

关于iPhone 开发者 : UIImageview subclass interface builder - how to call custom initializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2407838/

相关文章:

ios - Swift - iOS 11 翻译

iphone - iPhone-AudioQueueLevelMeterState-电源的单位是什么?

iOS - Interface Builder - 自动布局两个标签

objective-c - XIB 无法在静态库中找到类

ios - 如何使用 UIView 框架创建自定义初始化

iPhone:以编程方式打开 URL

ios - 如何在 iOS 9 中获取堆叠的 UITextFields

ios - 覆盖 UILabel 字体会导致标签被截断

initialization - 如何决定使用哪种模式进行 'kaiming_normal' 初始化

C++ init for循环内的多个类对象提供相同的内存地址?