Ios 如何在同一时间点禁用屏幕上的多个用户交互

Ios 如何在同一时间点禁用屏幕上的多个用户交互,ios,user-interface,uiimageview,uibutton,Ios,User Interface,Uiimageview,Uibutton,在我的应用程序中,不包含任何ui元素,如facebook按钮、twitter按钮、注销按钮、带有手势的imageview ` 像这样,我添加了所有元素 当用户一次单击所有按钮时,所有三项功能都正常工作。 这里只需要做一个操作 我如何解决这个问题? 我看到了一些摆脱这种局面的方法 您保持每个按钮的强链接,并 [someButton setUserInteractionEnabled:NO] 对于用户单击某人后的每个元素。但这需要很多时间和代码 (我认为更好的解决方案)或者您可以在视图顶部显示U

在我的应用程序中,不包含任何ui元素,如
facebook按钮、twitter按钮、注销按钮、带有手势的imageview

`

像这样,我添加了所有元素 当用户一次单击所有按钮时,所有三项功能都正常工作。 这里只需要做一个操作

我如何解决这个问题?


我看到了一些摆脱这种局面的方法

  • 您保持每个按钮的强链接,并

    [someButton setUserInteractionEnabled:NO]
    
  • 对于用户单击某人后的每个元素。但这需要很多时间和代码

  • (我认为更好的解决方案)或者您可以在视图顶部显示
    UIActivityIndicatorView
    ,在处理某些数据或执行某些其他操作时阻止所有用户交互

  • 一次处理多个触摸问题并设置单个属性

    [sectionLandscapeMageView设置ExclusiveTouch:是];
    
    //处理所有子视图多点触摸用户交互

     -(void)multipleTouchHandling
    {
        self.view.multipleTouchEnabled=NO;
        self.view.exclusiveTouch=YES;
        for(UIView* view1 in self.view.subviews)
        {
            if([view1 isKindOfClass:[UIButton class]])
            {
                UIButton* btnVw = (UIButton*)view1;
                [btnVw setExclusiveTouch:YES];
            }
        }
    }
    

    在你的应用程序中,你在按钮中添加了手势?不,我只为imageview添加了点击手势。当应用程序第一次启动时,如果我点击所有元素,所有元素都在运行,请在此处添加您的一些代码。在这里,我只能以编程方式添加按钮创建..将UIButton的exclusiveTouch属性设置为YES。感谢您的回复,我没有从服务器获取任何数据。它执行正常的按钮单击事件。这解决了问题,或者需要其他解决方案?如果我同时使用
    UIActivityIndicatorView
    ,它将执行用户单击过的所有操作。它不会像这样显示,对吗?UIActivityIndicatorView只是UIView的子视图,如果在视图中添加activityindicator作为子视图,则可以拦截所有接口操作。如果我理解正确,下一步就是您的算法:1)用户单击某个按钮2)在控制器视图上添加UIActivityIndicatorView 3)开始操作4)处理操作结束并从控制器视图中删除UIActivityIndicatorView。
     -(void)multipleTouchHandling
    {
        self.view.multipleTouchEnabled=NO;
        self.view.exclusiveTouch=YES;
        for(UIView* view1 in self.view.subviews)
        {
            if([view1 isKindOfClass:[UIButton class]])
            {
                UIButton* btnVw = (UIButton*)view1;
                [btnVw setExclusiveTouch:YES];
            }
        }
    }