È inoltre possibile provare qualcosa di simile.
È possibile creare un containerView per la visualizzazione del testo e quindi modificare le coordinate utilizzando le animazioni UIView
per assegnargli una diapositiva da destra a sinistra.
Si prega di vedere il codice qui sotto.
Prima dichiarare una vista contenitore e fare in modo che il testo richiesto visualizzi la sottoview.
In .h
@property (strong, nonatomic)IBOutlet UIView *containerView;
@property (strong, nonatomic)IBOutlet UITextView *childTextView; //I have set it as subview in xib
In .m assicurarsi di impostare quanto segue in viewDidLoad
o in Xib
self.containerView.clipsToBounds = YES;
Gesti
UISwipeGestureRecognizer *recog = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(changeText)];
recog.direction = UISwipeGestureRecognizerDirectionLeft;
[self.containerView addGestureRecognizer:recog];
abbellimento (per questo si avrebbe bisogno QuartzCore/QuartzCore.h)
self.containerView.layer.borderWidth = 1.0f;
self.containerView.layer.borderColor = [UIColor lightGrayColor].CGColor;
self.containerView.layer.cornerRadius = 5.0f;
Dritti al punto
- (void)changeText
{
[UIView animateWithDuration:0.3f animations:^(void){
CGRect endPos = self.childTextView.frame;
endPos.origin.x -= endPos.size.width; //Move it out of the view's frame to the left
self.childTextView.frame = endPos;
} completion:^(BOOL done){
CGRect startPos = self.childTextView.frame;
startPos.origin.x += (2*startPos.size.width);// this will take it to the right.
self.childTextView.frame = startPos;
self.childTextView.text = @"Changed text";
[UIView animateWithDuration:0.2f animations:^(void){
CGRect displayPos = self.childTextView.frame;
displayPos.origin.x -= displayPos.size.width; // To compensate for the double +ve on top
self.childTextView.frame = displayPos;
}];
}];
}
fonte
2014-05-18 06:51:21
@jrturton Se lo uso su imageView di una cella, funziona perfettamente finché non viene riutilizzato.Quindi ottieni la vecchia immagine della cella riutilizzata che passa alla nuova immagine. Voglio sempre che vada da vuoto a immagine. Senza l'animazione, tutto ciò che vorresti è l'immagine di imageView in readyForReuse, ma non è sufficiente per resettarlo. Eventuali suggerimenti? –
@AlexanderofNorway che suona come un caso d'uso abbastanza diverso per meritare la sua stessa domanda - Sono sorpreso di impostare l'immagine su zero non funziona – jrturton
Il problema con questa soluzione è che include una dissolvenza. – malhal