con la transición en iOS7 el separador tiene 15px el relleno a la izquierda. Sé que me puede quitar este acolchado, con separador de inserción en función de la UITableView configuración en el archivo xib, pero tengo que mantener el texto del título con relleno. Cómo hacerlo?

predeterminado:

Mantener UITableView relleno en la cabecera, pero no en el separador en IOS7

con la costumbre en el separador de inserción a 0:

Mantener UITableView relleno en la cabecera, pero no en el separador en IOS7

necesito para mantener los separadores como el de la figura 2, pero el encabezado con «2013» como en la imagen 1.

  • ¿Usted tiene sólo una sección en formato tableview o tienes más?
  • Nope, uno para todos los días en los que he notificación.

7 Comentarios

  1. 14

    para el Separador se puede establecer a través de Storyboard

    y para el encabezado de hacer un encabezado personalizado como este

    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
      UIView *viewHeader = [UIView.alloc initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 28)];
      UILabel *lblTitle = [UILabel.alloc initWithFrame:CGRectMake(6, 3, 136, 21)];
    
      [lblTitle setFont:[UIFont fontWithName:@"HelveticaNeue" size:13]];
      [lblTitle setTextColor:[UIColor blackColor]];
      [lblTitle setTextAlignment:NSTextAlignmentLeft];
      [lblTitle setBackgroundColor:[UIColor clearColor]];
      [viewHeader addSubview:lblTitle];
    
      return viewHeader;
    }

    darle cualquier altura determinada. y ponerle el texto.
    hacer una Matriz para los Encabezados de sección que contendrá sus años.

    • donde viewHeader representan? no inicializado
    • lo siento copiar y pegar salió mal de mi código 😛
    • sí, yo sé, pero no entiendo lo que tengo que poner en lugar de viewHeader, que un delegado de la función y no veo ninguna viewHeader init dentro 😛
    • viewHeader es básicamente una UIView que vamos a volver para su uso como una Sección de Encabezado. -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section es un delegado de la función. colóquelo en su UITableView Controlador de Vista .
    • yo no veo nada en lugar de 2013 ahora O_O
    • hizo un NSMutableArray y por separado agregar el tuyo años en ella ? si no lo hace. y en que -(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection: dar [lblTitle setText:[array objectAtIndex:section]

  2. 41

    USO DE SWIFT Y EL STORYBOARD

    En el guión gráfico se pueden establecer diferentes separador de márgenes para el formato tableview (encabezado) y para las Células (separadores).

    Establecer el separador de inserción de la celda a 0, por la selección de la celda en el Storyboard y el establecimiento de las siguientes:

    Mantener UITableView relleno en la cabecera, pero no en el separador en IOS7

    A continuación, establezca el separador de inserción para el formato tableview (para el encabezado) a 15, seleccionando el formato tableview en el Storyboard y el establecimiento de las siguientes:

    Mantener UITableView relleno en la cabecera, pero no en el separador en IOS7

    OPCIONAL:

    Usted también puede necesitar para establecer los márgenes de las células a ser cero en programación para asegurarse de que el separador va todo el camino desde la izquierda a la derecha. El uso de este código, si es necesario en su tabla de controlador de vista del swift de archivo:

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    
        let cell: UITableViewCell = tableView.dequeueReusableCellWithIdentifier("YOURCELL", forIndexPath: indexPath) as! UITableViewCell
    
        //THIS IS THE IMPORTANT PART...
        cell.layoutMargins = UIEdgeInsetsZero
        cell.preservesSuperviewLayoutMargins = false
    
        return cell
    
    }
    • Esto debe ser aceptado respuesta
    • Por favor, acepte esta respuesta.
    • Así de simple, debe ser aceptada!
    • También funciona si la vista de la tabla y las celdas están en distintos xibs (sin guión).
  3. 2

    UITableView tiene un delegado método denominado viewForHeaderInSection. Si usted retire el relleno un después en el método delegado agregar un relleno y devolver la sección de encabezado de la vista.

    - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(tableView.frame), 30)];
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(15, 5, 200, 25)];
    
        //15 pixel padding will come from CGRectMake(15, 5, 200, 25).
        label.text = @"2013";
        [view addSubview: label];
        return view;
    }

    Usted puede diseñar encabezado de ver cómo cada vez que te gusta. Para el ajuste de la altura del formato tableview encabezado de uso:

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;

    Esperanza te ayuda… )

    • creo que ese es el solutin pero no es claro para mí. he reimplementar – (UIView *)en formato tableview:(UITableView *)en formato tableview viewForHeaderInSection:(NSInteger)sección; y cómo mover 15px derecho de relleno en el interior de este delegado? me puedes dar el ejemplo?
    • El fin de semana. Lo siento por el retraso. 🙂
  4. 1

    Puede establecer los márgenes en la mesa (y de encabezado/pie de página) y en la misma célula:

    -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{    
        if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) {
            [tableView setSeparatorInset:UIEdgeInsetsMake(0, 10, 0, 0)];
        }    
        if ([tableView respondsToSelector:@selector(setLayoutMargins:)]) {
            [tableView setLayoutMargins:UIEdgeInsetsMake(0, 10, 0, 0)];
        }
        if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
            [cell setLayoutMargins:UIEdgeInsetsZero];
        }
    }
  5. 1

    Si desea aplicar la sangría de la Sección de texto desde el margen izquierdo, aquí es una manera sencilla de que lo hice. En la función, consulte el espacio después de la primera cita marca? Acaba de poner tantos espacios como usted necesita antes de que el inicio del texto.

    func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
            let title: UILabel = UILabel()
    
            title.text = " \(sortedSections[section])"
            title.textAlignment = NSTextAlignment.Left
    
            return title
        }
  6. 0

    Es posible que no desee para crear un encabezado personalizado vista siempre porque a veces es un overkill o se necesitará un poco de ensayo y error para hacerla exactamente igual que el de por defecto el título de la sección. En cambio, hay una simple hack que no necesita devolver un encabezado personalizado a la vista. Acaba de establecer su separador de sangría a 0 y poner un poco de espacio en la cadena de título.

    Mantener UITableView relleno en la cabecera, pero no en el separador en IOS7

    - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
        return @"    Your Title";
    }
    • La adición de espacio para una cadena de nunca es una opción válida.
    • en IOS 9, en la lista, en mi caso, no había necesidad de espacios, cambiar el separador de los insertos, se trasladó el texto de cabecera en el lugar correcto…. eso fue genial
  7. -4

    en que cellForRowAtIndeaPath método de agregar una vista en la celda como

    UIView* view = [[UIView alloc] initWithFrame:CGrectmake(cell.frame.ori.x, cell.frame.ori.y, 20.0, cell.height)];
    
    view.backgroundColor = desired color
    
    [cell.containView addSubView: view];

    agregar esto a la primera celda de código y listo

    • no es un abeto de la célula, en formato tableview tiene un montón de secciones. Tha sólo un ejemplo.
    • esto va a hacer por toda la sección y de la célula, y también puede acondicionado, con su específica de la celda o sección

Dejar respuesta

Please enter your comment!
Please enter your name here