OGeek|极客世界-中国程序员成长平台

标题: ios - 如何在同一时间点禁用屏幕上的多个用户交互 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 13:25
标题: ios - 如何在同一时间点禁用屏幕上的多个用户交互

在我的应用程序中包含 no.of UIElements,例如 facebook 按钮、twitter 按钮、注销按钮、带有手势的 imageview

`

facebookBtn = [UIButton buttonWithType:UIButtonTypeCustom];
 [facebookBtn setImage"facebook.png"];
 [facebookBtn addTarget:self actionselector(switchToFacebookShare) forControlEvents:UIControlEventTouchUpInside];
 [facebookBtn setFrame:CGRectMake(0, 50, 24, 24)];
[self.view addsubview:facebookBtn];`

 `twitterBtn = [UIButton buttonWithType:UIButtonTypeCustom];
  [twitterBtn setImage"facebook.png"];
  [twitterBtn addTarget:self actionselector(switchToTwitterShare) forControlEvents:UIControlEventTouchUpInside];
  [twitterBtn setFrame:CGRectMake(0, 100, 24, 24)];
  [self.view addsubview:twitterBtn];`


`imageTapGesture =  [[UITapGestureRecognizer alloc] initWithTarget:self actionselector(sectionTapping];
 [imageTapGesture setNumberOfTapsRequired:1];`

`sectionPortraitImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
 [sectionPortraitImageView setUserInteractionEnabled:YES];
 [sectionPortraitImageView addGestureRecognizer:imageTapGesture];
 [contentView addSubview:sectionLandscapeImageView];`

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

我该如何解决这个问题?



Best Answer-推荐答案


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

[sectionLandscapeImageView setExclusiveTouch:YES]; //处理所有 subview 的多点触摸用户交互

 -(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];
        }
    }
}

关于ios - 如何在同一时间点禁用屏幕上的多个用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27653214/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4