usar tan serie que puede lejos funciona estar como apple storyboard watchkit apple-watch watch-os wkinterfacetable

storyboard - tan - Reloj de Apple: cómo desplazar solo el contenido de la tabla, y no la interfaz de usuario del reloj completo?



como usar el apple watch serie 3 (2)

Para aprender a ver la programación, he configurado una pequeña aplicación de prueba que consiste solo de una imagen y una tabla:

La aplicación es ejecutada por iOS y simuladores de reloj. Los contenidos de la imagen y la tabla están configurados correctamente por la aplicación.

Cuando la tabla es demasiado larga para caber completamente en la pantalla del reloj, esperaba que tocar la mesa permitiera desplazar el contenido de la tabla. Sin embargo, se desplaza todo el contenido del reloj, incluida la imagen (tenga en cuenta que el disco verde se ha desplazado medio fuera de la vista):

¿Qué debo hacer para mantener fija la imagen en la pantalla, pero permitir que el contenido de la tabla se desplace verticalmente?


En watchOS 3 simplemente establece cualquier objeto como un delegado por:

let crownSequencer = WKExtension.shared().rootInterfaceController!.crownSequencer crownSequencer.delegate = self crownSequencer.focus()

Luego, vuelva a leer el valor implementando:

func crownDidRotate(_ crownSequencer: WKCrownSequencer?, rotationalDelta: Double)


Si bien la API privada es compatible con lo que desea hacer, esa característica no está públicamente disponible para nosotros en watchOS 2 o watchOS 3.

Estamos limitados al desplazamiento de toda la interfaz (cuando su contenido es más grande que el tamaño de la pantalla) o a que la interfaz completa no se desplaza (cuando su contenido se ajusta al tamaño de la pantalla).

Es posible que desee enviar una solicitud de función que solicite un grupo estático, un encabezado de fila de tabla adhesiva o una región de desplazamiento.

Lo que se acerca ...

El nuevo WKCrownSequencer y WKCrownDelegate le permiten interactuar con una escena u objeto de interfaz específico, pero no hay manera de anular el reconocimiento de gestos y el soporte de desplazamiento del sistema en nombre de todo el controlador de interfaz de desplazamiento.

No creo que haya una manera elegante de implementar lo que quieres ahora, eso funcionaría perfectamente.

Si estás decidido a hackear o repensar esto ...

Si no desea esperar a que Apple finalmente ofrezca el soporte adecuado para lo que desea, aquí hay algunas opciones que pueden ayudarlo a abordar esto desde una dirección diferente.

  • Intenta reemplazar la mesa con un selector. El selector te permite desplazarte por diferentes elementos en la pantalla más pequeña, pero obviamente no se verá como una mesa .

  • Limite su tabla a un número fijo de filas que no excedan el tamaño de la pantalla. Puede actualizar el contenido de la fila a medida que la corona se desplaza, pero sería un efecto de búsqueda en lugar de un efecto de desplazamiento .

  • Desplácese hasta Core Graphics para dibujar el indicador de actividad de ubicación o el texto de la tabla para crear la ilusión de que una parte de la pantalla no se desplaza (no).

  • Cambie el color de fondo de la (s) fila (s) de la tabla y deje que el color de fondo funcione como el indicador de actividad de ubicación.