2015-09-17 1 views
1

Je travaille sur une application de calendrier et j'ai beaucoup de vues dans chaque page de la scrollview. Le problème est que sur simulateur cela fonctionne bien mais quand j'installe l'application sur l'appareil, le balayage entre les pages est très lent.Afficher la pile ou le dessin

Je remarque que beaucoup de temps prend acheter:

  • masksToBounds - je dois avoir une vue-s cercle
  • addSubview - il y a beaucoup d'entre eux

et dessiner toutes les vues dans drawRect impliquent de changer toutes les méthodes et l'ordre et il y aura aussi un comportement différent sur le redimensionnement.

La question est comment puis-je corriger le décalage? est drawRect mieux que les sous-vues?

Répondre

0

La solution que je suis venu est d'avoir un récipient où je place tous les points de vue alors je convertir ce point de vue à l'UIImage et de 20 UIView « si réussi à réduire à un UIImageView

J'utilise cette méthode pour obtenir l'image de UIView:

- (UIImage *)snapShotForView:(UIView *)view 
{ 
    UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, 0.0); 
    [view.layer renderInContext:UIGraphicsGetCurrentContext()]; 

    UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    return img; 
} 
2

Je peux vous suggérer une alternative. J'ai récemment développé une application iOS basée sur un calendrier et utilisé cet outil FSCalendar déjà disponible. Cela fonctionne assez bien sur le simulateur & tout en faisant défiler les vues mensuelles.

Donc, vous pourriez vouloir essayer ceci!

+0

Je ne sais pas pourquoi j'ai reçu un vote négatif ici. Mon intention était de faire savoir à OP qu'il existe déjà des calendriers fonctionnant correctement. Donc, si cela convient à OP, au lieu de réinventer la roue, il pourrait être réutilisé. C'est tout l'objectif des communautés/outils SO & Git-Hub. Décevant! – Abhinav

+0

Balanced it out;) – johnpatrickmorgan

+0

@johnpatrickmorgan hey merci mon pote :-)! – Abhinav