2010-04-11 12 views
10

Hola: Quiero mostrar un índice de sección en una UITableView con una barra de búsqueda en el encabezado de la vista de tabla (no encabezado de sección). Pero la tira de índice ahora se superpone a la barra de búsqueda. ¿Existe una solución elegante para evitar esto y permitir que el índice comience debajo del encabezado de la tabla?UITableView sección índice se superpone a la barra de búsqueda

+1

http://stackoverflow.com/questions/556814/changing-the-size-of -the-uisearchbar-textfield. . echa un vistazo al comentario de Mike – thndrkiss

+0

thndrkiss: Te refieres a la respuesta. Las respuestas no son comentarios, y Mike solo ha publicado una respuesta sobre esa pregunta. –

+0

Hola, ¿Sney te ha resuelto este problema? – iXcoder

Respuesta

10

Me di cuenta de que esta respuesta llega muy tarde, pero tuve el mismo problema y busqué aquí y en otros lugares. He encontrado buenas respuestas aquí: Changing the size of the UISearchBar TextField?

Hay varias sugerencias, pero la que me pareció más sencillo era poner un UISearchBar y UINavBar en un UIView y pasar ese fin de setTableView. El problema es que la tabla controla el tamaño de la vista de encabezado, ignorando cualquier configuración que agregue. Así que agregar la vista hace que la mesa sea feliz y se puede acceder al interior y establecer el tamaño de la barra de búsqueda sin que la mesa interfiera. El UINavBar tiene los mismos estilos de fondo que UISearchBar, por lo que llena el espacio adicional de una manera visualmente consistente, aunque usted tiene que ajustar su marco - ver más abajo:

UISearchBar searchBar = [[[UISearchBar alloc] initWithFrame:CGRectMake(0, 1, 290, 40)] autorelease]; 
UIView *searchView = [[[UIView alloc] initWithFrame:CGRectMake(0, 1, 320, 40)] autorelease]; 
UINavigationBar *navBar = [[[UINavigationBar alloc] initWithFrame:CGRectMake(1, -1, 320, 41)] autorelease]; // same gradient/style as search bar 
[navBar setTintColor:[UIColor lightGrayColor]]; 
[searchView addSubview:navBar]; 
[searchView addSubview:searchBar]; 
+0

Jon muchas gracias por su respuesta. ¡Funcionó para mí! :) – alin

4

agrego cadenas vacías a los índices de matriz:

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView 
{ 
    NSMutableArray *array = [NSMutableArray arrayWithArray:_sortedKeys]; 

    [array insertObject:@"" atIndex:0]; 
    [array insertObject:@"" atIndex:0]; 

    return array; 
} 
+0

¿Esto no estropea la funcionalidad del índice? – newenglander

+0

Esto no ayuda con índices más grandes, ya que el índice se mostrará con "puntos" redondos en lugar de una serie de entradas de índice, y aún se superpondrá a su vista. – RickJansen

Cuestiones relacionadas