当数据从iphone中的web服务加载时,如何禁用UIView的用户交互?

时间:2012-09-22 06:19:17

标签: iphone

您好如何在从webservice加载数据时禁用UiView userinteraction

我使用以下行禁用用户互动,但它无效。

self.view.userinteractionenabled=NO;

我在webservice结束时替换了 YES

它不起作用,这会产生UINavigation问题。点击didSelectRow时会出现更多观看次数。

2 个答案:

答案 0 :(得分:1)

self.view.userinteractionenabled = NO;

这意味着用户无法触及self.view,但如果该网页有tabbarControllernavigationController,则用户可以同时触及。{/ p>

因此,只需在UIView上添加新window,然后在您的网络服务完成时将其从superview中删除。

添加方法: -

view = [[UIView alloc]initWithFrame:CGRectMake(0.0, 0.0, 320.0, 480.0)];
[view setBackgroundColor:[UIColor blackColor]];
[view setAlpha:0.5];
AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
[appdelegate.window addSubview:view];

然后写下

[view removeFromSuperview]; 

完成您的网络服务后。 当然,您必须导入Appdelegate.h才能使用Appdelegate

答案 1 :(得分:0)

您正在设置视图的userInteraction,因此它会禁用您的视图,但是navigationBack按钮位于窗口上,因此请禁用窗口的userInteraction而不是禁用您的视图。

这是代码

AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
appdelegate.window.userInteractionEnabled = NO;