【问题标题】:Problems with nib-based/programmatically added UIViews hierarchy基于 nib/以编程方式添加的 UIViews 层次结构的问题
【发布时间】:2011-11-04 14:48:24
【问题描述】:

1。 我在初始化程序中以编程方式将 UILabel 添加到我的视图中并添加了一个手势识别器。 然后我在 IB nib 文件中添加了其他 UILabel(并且每个都有一个手势识别器)

我可以在顶部看到我的 UILabel,但是当我触摸屏幕时,会触发其他(笔尖文件 UILabel)手势识别器。

我想知道为什么,如果我在顶部看到我的 UIview,我只能与底部的视图交互。

2。 -(void)awakeFromNib 永远不会被调用。为什么?

谢谢

【问题讨论】:

    标签: ios


    【解决方案1】:

    1 - 是在你的 UILabels 顶部有 userInteractionEnabled = YES 的东西吗? nib 中的 UILabel 是否检查了 userInteractionEnabled?

    2 - 如果你使用 initWithNibName:bundle: awakeFromNib 不会被调用。 awakeFromNib 仅在相关对象存储在 nib 中时才会调用。如果您使用的是 initWithNibName,则需要在您的类中提供该方法。

    【讨论】:

    • 该死的 userInterfactionEnabled,我总是忘记它。我明白为什么 awakeFromNib 不起作用。 (但是,它应该在某些情况下从 UIViewController 工作吗?)。是的,我也在苹果论坛上发过帖子:)
    • 您了解将视图控制器存储在 nib 中与使用 initWithNibName 创建视图控制器之间的区别吗?存储在 nib 中的每个对象在加载时都会调用 awakeFromNib。如果您使用 initWithNibName 在代码中创建视图控制器,则不会调用 awakeFromNib。
    猜你喜欢
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多