2015-10-11 16 views

risposta

11

Quindi il problema era che non mi ero accorto che la mia cella si era concentrata. Per concludere questa funzione, è necessario implementare

1) Azionamento canBecomeFocused

2) override "didUpdateFocusInContext: withAnimationCoordinator:" metodo per essere in grado di evidenziare la cella più concentrati

Swift 2.3:

override func canBecomeFocused() -> Bool { 
    return true 
} 

override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) { 

    if context.nextFocusedView == self { 
     coordinator.addCoordinatedAnimations({() -> Void in 
      self.layer.backgroundColor = UIColor.blueColor().colorWithAlphaComponent(0.2).CGColor 
     }, completion: nil) 
    } else if context.previouslyFocusedView == self { 
     coordinator.addCoordinatedAnimations({() -> Void in 
      self.layer.backgroundColor = UIColor.clearColor().CGColor 
     }, completion: nil) 
    } 
} 

Swift 3:

override var canBecomeFocused: Bool { 
    return true 
} 

override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) { 
    if context.nextFocusedView == self { 
     coordinator.addCoordinatedAnimations({() -> Void in 
      self.layer.backgroundColor = UIColor.blue.withAlphaComponent(0.2).cgColor 
     }, completion: nil) 

    } else if context.previouslyFocusedView == self { 
     coordinator.addCoordinatedAnimations({() -> Void in 
      self.layer.backgroundColor = UIColor.clear.cgColor 
     }, completion: nil) 
    } 
} 
1

Sembra che le cose erano cambiate e ora il modo corretto di fare un attivabile punto di vista è questo:

override var canBecomeFocused : Bool { return true }

0

Swift 3 versione del Codice di Pavel:

override var canBecomeFocused: Bool { 
    return true 
} 

override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) { 

    if context.nextFocusedView == self { 
     coordinator.addCoordinatedAnimations({() -> Void in 
      self.layer.backgroundColor = UIColor.blue.withAlphaComponent(0.2).cgColor 
     }, completion: nil) 

    } else if context.previouslyFocusedView == self { 
     coordinator.addCoordinatedAnimations({() -> Void in 
      self.layer.backgroundColor = UIColor.clear.cgColor 
     }, completion: nil) 
    } 
} 
Problemi correlati