我正在为一个现有应用程序开发应用内购买。场景类似于我在应用程序中有一个功能(其中包含 UITextField 控件),该功能最初被禁用,当用户点击该 UITextField 时,它会显示解锁和购买该功能的消息,一旦完成,UITextField 将启用。
但问题是,由于 UITextField 最初被禁用,我无法检测到任何点击,因此我无法获得任何可以为应用内购买功能编码的事件。
或者
如果无法检测到禁用 UIControl 的点击,还有什么其他选项可以实现上述功能。
请帮忙。
问候, 普莱克
通过制作这样的按钮,在文本区域上放置一个不可见的按钮:
UIButton* 按钮 = [[UIButton buttonWithType:UIButtonTypeCustom] 保留];
button.frame =CGRectMake(你的参数在这里);
button.showsTouchWhenHighlighted=YES; //方便调试
[按钮 addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchUpInside];
并将其添加为子视图。根据您要实现的目标以及 UITextField 包含的内容,您需要将其添加到的内容可能会有所不同。
我记得,禁用视图的子视图也被禁用,所以我猜你的“功能”是禁用视图。您可以尝试将 UIControl 放在未禁用的视图上(例如 UIWindow 或任何子视图)并将其置于顶部。不是 100% 肯定,但我认为它应该工作。
UIControl除非您将其子类化并挂钩-touchesXXXXX:withEvents:方法,否则直接检测禁用的水龙头并不容易。
UIControl但是,您可以在禁用的顶部上叠加一个活动的和透明的来接管水龙头。购买完成后移除透明控件。
用户如何知道按下禁用的按钮?您最好提供一个非禁用按钮,以明确按下它时会发生什么。