禁用视图控制器中每个视图的触摸

时间:2015-08-12 10:11:23

标签: ios swift

我正在做一个用动画创建视图的项目。在创建视图时,我想在视图控制器中的每个视图中禁用触摸。所以我做了以下代码。

private func addInScrollView(){
    self.view.userInteractionEnabled = false
    createCardView()
    self.view.userInteractionEnabled = true
}

但触摸没有被禁用。如何完成这项任务?

4 个答案:

答案 0 :(得分:2)

这是一个很好的解决方案。

self.view.subviews.map { $0.userInteractionEnabled = false }

答案 1 :(得分:0)

希望这可以帮助你:

禁用用户互动:

  UIApplication.sharedApplication().beginIgnoringInteractionEvents()

启用用户互动:

   UIApplication.sharedApplication().endIgnoringInteractionEvents()

答案 2 :(得分:0)

试试此代码

 override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

    let tCount = touches.count
    var touch : UITouch!
    touch = touches.first as? UITouch
    var touchLocation = touch.locationInView(self.view)
    if CGRectContainsPoint(yoursubview.frame, touchLocation)
    {
      println("view clicked")
        return
    }

答案 3 :(得分:0)

您可以在现有视图的基础上创建一个新的UIView(obj-c代码,但希望能给你一个想法)

CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGFloat screenHeight = screenRect.size.height;
UIView *newView = [[UIView all]initWithFrame:CGRectMake(0, 0, screenWidth, screenHeight)];
[self.view addSubview: newView];

动画完成后,将其删除

[newView removeFromSuperView];