Im Storyboard habe ich eine ViewController
namens home.Initiiere eine Funktion wenn und nur wenn ein CGPoint für 2 Sekunden in einer Ansicht ist
Haus hat eine rote UIView
als Unteransicht und befindet sich im Zentrum von Home.
Die rote Ansicht hat eine LongPressGestureRecognizer
, die der Benutzer bei Aktivierung die rote Ansicht um den Bildschirm verschieben kann.
Wenn der Benutzer die rote Ansicht nahe genug auf die linke Seite des Bildschirms bewegt, erscheint ein UIView
Sidebar
.
Innerhalb der Sidebar sind n
einzigartig gefärbt subviews
.
Wenn ein Benutzer die rote Ansicht innerhalb des Rahmens der farbigen Unteransichten bewegt, ändern sich die Farben mix
und die Farbe in der Seitenleiste, die die rote Ansicht berührt, ändert sich. Es ändert sich in die Mischung.
`
func handleAuditioneeLongPress(sender: UILongPressGestureRecognizer) {
switch sender.state {
case .Began:
hideSideBar()
case .Changed:
let touchPoint = sender.locationInView(self.view)
thumbnailTrackTouchPoint(touchPoint)
case .Ended:
let dropPoint = sender.locationInView(self.view)
thumbnailWasDropped(dropPoint)
default:
break
}
}
func thumbnailTrackTouchPoint(touchPoint: CGPoint){
UIView.setAnimationsEnabled(true)
UIView.animateWithDuration(0.03, delay: 0.0, options: [.BeginFromCurrentState, .CurveEaseOut], animations: {
self.red.center.x = touchPoint.x
self.red.center.y = touchPoint.y - 50
}, completion: nil)
if touchPoint.x < 30{
showSidebar()
isSidebarOut = true
}
if isSidebarOut {
if touchPoint.x > 135 {
hideSideBar()
isSidebarOut = false
}
let location = self.view.convertPoint(touchPoint, toView: sidebar)
let subview = sidebar.hitTest(location, withEvent: nil)
if(subview != nil) {
if let coloredIconController = self.sidebarController.viewToColoredIconController[subview!]
/*
if coloredIconController.view.frame.contains(location) for more than 2 seconds mix the colors
*/
` Während der Benutzer Manövern die Sidebar, will ich nicht zufällige Vermischung.
Also ich möchte eine Überprüfung Bedingung. Rot sollte genau dann mischen, wenn der Touchpoint 2 Sekunden lang in einer farbigen Ansicht enthalten war.
nur raus kommt in 'thumbnailTrackTouchPoint' Sie einen Parameter speichern Datum hinzufügen könnte, die nur auf geändert auftritt, und Wenn es außerhalb des Limits liegt, wird es gelöscht, entweder weise. Dann können Sie überprüfen, ob der Unterschied länger als 2 Sekunden ist. – Larme
in Methode, die ausgeführt wird, wenn Sie Bereich Feuer geplanten Timer mit Methode zum Mischen eingeben, in der Methode, die ausgeführt wird, wenn Sie aus diesem Bereich nur ungültig Timer, wenn es nicht bereits ein Null ist –