2016-05-30 9 views
0

アプリ内のホームスクリーンに有効でない強制タッチアプリアイコンを押したのと同じ効果をシミュレートしようとしています。通常どおりにフェードし始め、深く押し込むと通常の状態に戻り、3回振動します(アプリが開かない)。シミュレーション「利用できないForce Touch」の振動とフェード

私はこの明示的な場合について、アップル上の任意のドキュメントを見つけることができませんでしたので、これまでシミュレートし、私の努力があります:

func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { 
    // I have a list of 'supported items' that will return the correct preview ViewController, 
    // and some of them are not supported returning the following lines: 

    // IMPORTANT TODO: Verify this is "Legal" 
    AudioServicesPlaySystemSound(1521) 

    return nil 
} 

問題をこれまでに:「非押された見解はフェードしません。振動の後、あなたがそれを解放したときにタッチを動かさないと、ビューは「タップされた」ように動作します(これは、タップを検出して別のビューを開いているので問題です)。

答えて

0

解決策が返されましたviewDidAppear:に自分自身を閉じるViewController。ここに例があります:

// In UIViewControllerPreviewingDelegate 
func previewingContext(previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? { 
     return PeekPopInvisibleViewController() 
} 

// Custom class to simulate 'no option': 
private class PeekPopInvisibleViewController: UIViewController { 

    init() { 
     super.init(nibName: nil, bundle: nil) 
     view.backgroundColor = UIColor.clearColor() 
    } 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
    } 

    override func viewDidAppear(animated: Bool) { 
     dismissViewControllerAnimated(false, completion: nil) 

     // This plays the '3 vibration' effect 
     AudioServicesPlaySystemSound(1521) 
    } 
} 
関連する問題