Estoy trabajando en una aplicación para iOS con una agradable interfaz de usuario para la visualización de los usuarios’ los amigos que se encuentra actualmente en una vertical ScrollView con paginación activada y 100×100pt fotos. Sin embargo, con más de 500 amigos, esto es increíblemente ineficiente y lenta, la carga de todos los de esas fotos en la memoria a la vez. Lo que me gustaría hacer es utilizar un formato tableview y cargar las imágenes cuando me carga las células, pero me gusta mucho el ajuste de efecto de tener un ScrollView con paginación activada.

¿Cómo podría usted me recomienda que agregar esta funcionalidad a un formato tableview?

  • por favor, no utilice code formatting como énfasis. En general, por favor, no añadir énfasis en absoluto en sus sugiere modificaciones. Además, no hay necesidad de usar HTML para los saltos de línea. Usted debe revisar el formato de la guía.
InformationsquelleAutor AttilaTheFun | 2014-01-30

3 Comentarios

  1. 4

    Configuración de la pagingEnabled propiedad de su UITableView en SÍ es siempre una opción… sin Embargo, por defecto UIScrollView de paginación automáticamente la página en múltiplos de su UITableView del marco altura (raro la misma altura de su UITableViewCells), por lo que es probable que necesite para implementar scrollViewWillEndDragging:withVelocity:targetContentOffset. Este método es llamado cuando un UIScrollView (o UITableView) comienza a desacelerarse, y nos permite especificar la ubicación de la UIScrollView debe finalizar el movimiento.

    -(void)scrollViewWillEndDragging:(UIScrollView *)scrollView 
                        withVelocity:(CGPoint)velocity 
                 targetContentOffset:(inout CGPoint*)targetContentOffset
    {
        //Intercept and recalculate the desired content offset
        CGPoint targetOffset = [self recalculateUsingTargetContentOffset:targetContentOffset];
    
        //Reset the targetContentOffset with your recalculated value
        targetContentOffset->y = targetOffset.y;
    }

    Puede que desee echa un vistazo a este post (UITableView w/paginación & impulso) con el fin de obtener una idea de cómo va a necesidad de adaptar el contenido de destino desplazamiento de recálculo método que se adapte a sus necesidades.

    • Ok, genial. Gracias.
  2. 0

    UITableView hereda de UIScrollView así que las vistas de tabla tienen el pagingEnabled de la propiedad como de desplazamiento vistas a hacer. Sólo tienes que enviar -setPagingEnabled:YES a su mesa con vista al igual que haría con su desplazamiento de la vista.

    Por ejemplo, en un UITableViewController subclase de aplicación:

    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        self.tableView.pagingEnabled = YES;
    }
  3. 0

    No me gusta el desplazamiento cuando la UITableView la Paginación fue habilitado por lo escribí estas dos TouchUpInside métodos (en C# para Xamarin) y a la izquierda de Paginación en la vista de tabla de movilidad. He añadido los botones que el usuario puede pulsar para ir a la página siguiente o anterior. Cuando se desplaza hacia abajo, el siguiente elemento que se encuentra se desplaza a la parte superior de la tabla de la vista del marco. Cuando la paginación, el algoritmo agrega una fila a la que se ha encontrado el elemento a tratar de mostrar un elemento que no está a caballo entre la vista de la tabla del marco. No se hacen chequeos de muy alto células que podrían ser más grandes que la vista de tabla de límites.

    partial void buttonNextPageClick( NSObject sender )
    {
      NSIndexPath path;
      CGPoint scrollpoint;
    
      scrollpoint = new CGPoint( 5f, tableviewFOO.ContentOffset.Y + tableviewFOO.Bounds.Height );  //down a page
    
      path = tableviewFOO.IndexPathForRowAtPoint( scrollpoint );
      if ( path == null )
        path = NSIndexPath.FromRowSection( tableviewFOO.NumberOfRowsInSection( 0 ) - 1, 0 );
    
      if ( path != null )
        tableviewFOO.ScrollToRow( path, UITableViewScrollPosition.Top, true );
    }
    
    partial void buttonPreviousPageClick( NSObject sender )
    {
      NSIndexPath path;
      CGPoint scrollpoint;
    
      scrollpoint = new CGPoint( 5f, tableviewFOO.ContentOffset.Y - tableviewFOO.Bounds.Height );  //up a page
    
      path = tableviewFOO.IndexPathForRowAtPoint( scrollpoint );
      if ( path == null )
        path = NSIndexPath.FromRowSection( 0, 0 );
      else
        path = NSIndexPath.FromRowSection( path.Row + 1, 0 );  //+1 for the cell that might be completely visible
    
      if ( path != null )
        tableviewFOO.ScrollToRow( path, UITableViewScrollPosition.Top, true );
    }

Dejar respuesta

Please enter your comment!
Please enter your name here