Vorrei chiedere come implementare l'animazione pop tenendo premuto un tasto della tastiera per l'estensione di tastiere iOS 8. So come assegnare il gesto di pressione lunga su ogni tasto ma non so come animare i tasti per presentare altri caratteri in quella chiave specifica.Implementazione della tastiera pop animazione in iOS 8 Keyboard Extension
MODIFICA: Ho visto questa domanda simile alla domanda here ma la differenza è che è stato in grado di creare le animazioni pop.
EDIT 2: ho visto un altro simile domanda viene chiesto here ma differiscono da quanto sembra, rispetto al look di default sulla tastiera standard.
EDIT 3: sono stato in grado di ottenere il mio comportamento desiderato quando toccando i tasti della tastiera. Ho solo bisogno di sapere come disegnare correttamente la vista chiave espansa. In allegato sono le immagini di riferimento. Il primo è quello che abbiamo raggiunto finora. Mi piacerebbe sapere come disegnare quella lettera F e poi tradurla in un UIView
in seguito.
EDIT 4: sono stato in grado di creare la vista chiave pop, ma non nella forma o livello desiderato volevo che assomiglia alla tastiera a comparsa chiave standard. Qui è per riferimento:
EDIT 5: ho provato la versione demo di PaintCode e ha generato il codice qui sotto. Questo è all'interno del mio metodo drawRect
nella mia visualizzazione personalizzata. La larghezza delle mie chiavi è solitamente 26.0 e l'altezza di 39.0. Sto anche usando Objective-C btw.
UIBezierPath* bezierPath = UIBezierPath.bezierPath;
[bezierPath moveToPoint: CGPointMake(26, 5.12)];
[bezierPath addLineToPoint: CGPointMake(26, 18.03)];
[bezierPath addCurveToPoint: CGPointMake(23.05, 22.41) controlPoint1: CGPointMake(26, 19.88) controlPoint2: CGPointMake(24.82, 21.51)];
[bezierPath addCurveToPoint: CGPointMake(19.62, 25.27) controlPoint1: CGPointMake(22.05, 23.24) controlPoint2: CGPointMake(20.79, 24.3)];
[bezierPath addCurveToPoint: CGPointMake(19.62, 39.95) controlPoint1: CGPointMake(19.62, 30.82) controlPoint2: CGPointMake(19.62, 39.95)];
[bezierPath addCurveToPoint: CGPointMake(17.17, 42) controlPoint1: CGPointMake(19.62, 41.08) controlPoint2: CGPointMake(18.52, 42)];
[bezierPath addLineToPoint: CGPointMake(8.83, 42)];
[bezierPath addCurveToPoint: CGPointMake(6.38, 39.95) controlPoint1: CGPointMake(7.48, 42) controlPoint2: CGPointMake(6.38, 41.08)];
[bezierPath addCurveToPoint: CGPointMake(6.38, 25.33) controlPoint1: CGPointMake(6.38, 39.95) controlPoint2: CGPointMake(6.38, 30.89)];
[bezierPath addCurveToPoint: CGPointMake(5.67, 24.74) controlPoint1: CGPointMake(6.15, 25.14) controlPoint2: CGPointMake(5.91, 24.94)];
[bezierPath addCurveToPoint: CGPointMake(5.37, 24.49) controlPoint1: CGPointMake(5.57, 24.66) controlPoint2: CGPointMake(5.47, 24.57)];
[bezierPath addLineToPoint: CGPointMake(5.32, 24.45)];
[bezierPath addCurveToPoint: CGPointMake(2.75, 22.3) controlPoint1: CGPointMake(4.41, 23.69) controlPoint2: CGPointMake(3.5, 22.93)];
[bezierPath addCurveToPoint: CGPointMake(1.02, 20.85) controlPoint1: CGPointMake(2.06, 21.92) controlPoint2: CGPointMake(1.47, 21.43)];
[bezierPath addCurveToPoint: CGPointMake(0.98, 20.82) controlPoint1: CGPointMake(0.99, 20.83) controlPoint2: CGPointMake(0.98, 20.82)];
[bezierPath addCurveToPoint: CGPointMake(0, 18.03) controlPoint1: CGPointMake(0.36, 20.02) controlPoint2: CGPointMake(-0, 19.06)];
[bezierPath addLineToPoint: CGPointMake(0, 5.12)];
[bezierPath addCurveToPoint: CGPointMake(2.48, 1.01) controlPoint1: CGPointMake(0, 3.44) controlPoint2: CGPointMake(0.97, 1.94)];
[bezierPath addCurveToPoint: CGPointMake(6.05, 0) controlPoint1: CGPointMake(3.48, 0.39) controlPoint2: CGPointMake(4.71, 0.02)];
[bezierPath addLineToPoint: CGPointMake(6.13, 0)];
[bezierPath addLineToPoint: CGPointMake(19.87, 0)];
[bezierPath addCurveToPoint: CGPointMake(26, 5.12) controlPoint1: CGPointMake(23.25, 0) controlPoint2: CGPointMake(26, 2.29)];
[bezierPath closePath];
[[UIColor redColor] setFill];
[bezierPath fill];
Il problema è che assomiglia a questo:
Se solo posso farlo abbastanza grande per renderlo come la tastiera di default, allora funzionerà.
Si potrebbe usare 'CGAffineTransform' s per ridimensionare una copia della proprietà 'CGPath' del tuo percorso Bezier fino a quando non è abbastanza grande. –
Controlla questo link. Ho aggiunto il mio codice del pulsante pop-up: http://stackoverflow.com/a/33355236/535013 – Muzammil
Grazie Sir Muzammil :) – jaytrixz