В раскадровке у меня есть ViewController
, называемый домом.Инициировать функцию тогда и только тогда, когда CGPoint находится в пределах просмотра в течение 2 секунд
Дом имеет красный UIView
в качестве подсмотра и расположен в центре дома.
Red View имеет LongPressGestureRecognizer
что при активации пользователь может перемещать красный вид вокруг экрана.
Когда пользователь перемещает красный вид достаточно близко влево от экрана, вылетает UIView
Sidebar
.
В боковой боковой панели: уникально цветной subviews
.
Когда пользователь перемещает красный вид в обрамлении цветных подвидов, цвет mix
и цвет на боковой панели, что красный вид прикоснулись меняют цвета. Он меняется в миксе.
`
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
*/
` Хотя маневры пользователей на боковой панели, я не хочу случайное смешивание.
Так что я хочу проверить состояние. Красный должен смешиваться тогда и только тогда, когда сенсорная точка содержалась в цветном виде в течение 2 секунд.
В 'thumbnailTrackTouchPoint' можно добавить параметр сохранения даты, которое происходит только изменились, и если он выходит за пределы, он удаляется, либо мудрый набор. Затем, когда вы закончите, вы можете проверить, является ли разница более 2 секунд. – Larme
в методе, который запускается, когда вы вводите заданный таймер огненной области с помощью метода для смешивания, в методе, который запускается, когда вы выходите из этой области, просто отменяет таймер, если он еще не равен нулю –