【问题标题】:iPhone + detect tap of disabled UIControliPhone + 检测禁用 UIControl 的点击
【发布时间】:2010-02-01 06:05:04
【问题描述】:

我正在为一个现有应用程序开发应用内购买。场景类似于我在应用程序中有一个功能(其中包含 UITextField 控件),该功能最初被禁用,当用户点击该 UITextField 时,它会显示解锁和购买该功能的消息,一旦完成,UITextField 将启用。

但问题是,由于 UITextField 最初被禁用,我无法检测到任何点击,因此我无法获得任何可以为应用内购买功能编码的事件。

如果无法检测到禁用 UIControl 的点击,还有什么其他选项可以实现上述功能。

请帮忙。

问候, 普莱克

【问题讨论】:

    标签: iphone detect tap


    【解决方案1】:

    通过制作这样的按钮,在文本区域上放置一个不可见的按钮:

    UIButton* 按钮 = [[UIButton buttonWithType:UIButtonTypeCustom] 保留]; button.frame =CGRectMake(你的参数在这里); button.showsTouchWhenHighlighted=YES; //方便调试 [按钮 addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchUpInside];

    并将其添加为子视图。根据您要实现的目标以及 UITextField 包含的内容,您需要添加的内容可能会有所不同。

    【讨论】:

      【解决方案2】:

      据我所知,禁用视图的子视图也被禁用,所以我猜您的“功能”是禁用视图。 您可以尝试将 UIControl 放在未禁用的视图上(例如 UIWindow 或任何子视图)并将其置于顶部。 不是 100% 确定,但我认为它应该可以工作。

      【讨论】:

        【解决方案3】:

        直接检测禁用的UIControl 的点击并不容易,除非您将其子类化并挂钩-touchesXXXXX:withEvents: 方法。

        但是,您可以在已禁用的UIControl 上叠加一个活动且透明的UIControl 以接管水龙头。购买完成后移除透明控件。

        【讨论】:

        • 您好,购买完成后如何去掉透明控件
        • @pratik: -removeFromSuperview.
        【解决方案4】:

        用户如何知道按下了禁用的按钮?您最好提供一个非禁用按钮,以明确按下它时会发生什么。

        【讨论】:

          猜你喜欢
          • 2011-12-11
          • 2011-11-01
          • 2012-06-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多