2008-10-24 36 views
57

En las aplicaciones para iPhone de Apple (como Contactos), tienen un bonito icono de lupa en la parte superior del índice de la vista de tabla. Como la API del índice de la vista de tabla está basada en caracteres, supongo que esta lupa es un carácter Unicode. Hasta ahora he recurrido a colocar un carácter de signo de interrogación allí, pero parece cojo.¿Cuál es el carácter de lupa de índice UITableView?

¿Alguien puede decirme de qué personaje es la lupa?

+0

No estoy seguro, así que no voy a hacer de esto una respuesta, pero es casi seguro que no tienes suerte. Principalmente baso esto en el hecho de que a las aplicaciones de Facebook y LinkedIn les falta esta característica. Si estuviera disponible, esperaría encontrarlo funcionando en esos. – carson

+0

Gracias. He seguido adelante y archivé un informe de error. –

Respuesta

113

De vuelta UITableViewIndexSearch como título de índice de sección (igual que @ "{search}") también funciona.

+2

solo para agregar, la nota de documentación está disponible en iPhone OS 3.0by versiones posteriores. – hkatz

+0

Este es probablemente el enfoque recomendado. @ "{search}" no parece estar documentado en ninguna parte. –

+9

Esta es en realidad la respuesta correcta en lo que se refiere a mí. Debe evitar el uso de constantes mágicas en su código – arclight

2

Sin duda puede poner un carácter Unicode en el índice de la vista de tabla (he hecho esto con otros caracteres) y poner su encabezado en la primera sección de la tabla en lugar de tableViewHeader. Dicho esto, aún no he encontrado la lupa en ninguna de las referencias Unicode. El cierre que he encontrado es el símbolo de la Grabadora Telefónica - ⌕ (\ u2315). Desafortunadamente, apunta en la dirección incorrecta y el "mango" se extiende hacia la "lupa".

+0

Sí, he estudiado todos los personajes y no los he visto. Mi otro pensamiento es que está en uno de los conjuntos de fuentes que viven en el iPhone y no en OS X. Por último, tal vez no es un personaje en absoluto; solo algunos íconos privados que Apple está intercambiando internamente. –

+0

Cogí una copia de Friend Book durante el poco tiempo que estaba en la tienda de aplicaciones y tenía una lupa en la parte superior del índice, por lo que asumí que era un personaje Unicode. Pero, como dijiste, aún no lo he encontrado entre ninguno de los personajes que he visto. – Jablair

94

@"{search}" FTW.

Devuelve ese título y se lo reemplaza mágicamente por el glifo correcto.

+2

¡Mierda, eso es todo! ¡Gracias! –

+0

lo estaba buscando por mucho tiempo y finalmente lo conseguí en el foro de 2 años ... gracias. –

+33

Considere usar la constante 'UITableViewIndexSearch', como señala user123417. –

0

Entiendo por qué alguien podría no querer usar la imagen, aunque es muy bonita ... los caracteres son mucho más fáciles de mantener y pueden escalar con poco esfuerzo.

⚦ es otra opción unicode para un glifo similar a un lente de aumento ... de nuevo no está mirando en la dirección correcta ... Creo que es realmente una especie de símbolo de género hermafrodita. El html para el símbolo Unicode anterior es & # 9894;

Realmente creo que se debe agregar un símbolo de lente de ampliación al carácter Unicode establecido en "26: Misc. Symbols".

43

En tableView: sectionForSectionIndexTitle: atIndex: desplazarse de forma explícita a la cima y volver NSNotFound:

- (NSInteger) tableView:(UITableView *)tableView 
sectionForSectionIndexTitle:(NSString *)title 
       atIndex:(NSInteger)index { 
    if (index == 0) { 
     [tableView setContentOffset:CGPointZero animated:NO]; 
     return NSNotFound; 
    } 
    return index; 
} 
+1

Otra opción es [self.tableView scrollToRowAtIndexPath: [NSIndexPath indexPathForRow: 0 inSection: 0] atScrollPosition: UITableViewScrollPositionBottom animated: NO]; –

+0

Gracias, esta respuesta fue muy útil. – titaniumdecoy

+0

Gracias @Marcello Bastea-Forte. – milanpanchal

1

En el sectionIndexTitlesForTableView agrega un NSMutableArray * títulos por ejemplo y además de sus índices agrega el [titles addObject: UITableViewIndexSearch]

5

Ya existe un punto de código UTF existente para la lupa. Es U+1F50D. Sin embargo, es un poco complicado lograr que Xcode reconozca este número. De acuerdo con la Guía de programación de cadenas de Apple, los bits de UTF se deben dividir en dos pares de subrogación UTF-16 (0xD83D, 0xDD0D). Consulte con this surrogate pair calculator para referencia.

ejemplo

Un NSString con el contenido del par suplente se puede obtener con:

[NSString stringWithFormat:@"%C%C", 0xD83D, 0xDD0D]; 
+1

No. No. No. Use UITableViewIndexSearch como se menciona en varias respuestas (anteriores). Es parte del SDK, por lo que su aplicación seguirá siendo compatible entre las versiones de iOS. – JOM

+2

La pregunta era cuál era el personaje de la lupa y esta técnica para trabajar con los puntos de código UTF más arcanos parecía digna de mención. iOS tiene una gran biblioteca de glifos que la gente nunca usa y de vez en cuando es agradable tener acceso a ellos porque se escalan realmente bien. – weibel

+0

@ "" funciona para mí. – Pang

0

Sé que esto es una entrada antigua, pero ya que está de manera similar relacionado con lo que estaba buscando ... Si alguien está buscando el carácter Unicode de la lupa, sería éste \ u128269 representado por la siguiente:

Cuestiones relacionadas