Imitación del mensaje de WeChat Mantenga presionado el menú de burbujas

No hay mucho que decir, vaya directamente a las representaciones.

SJPopMenu.gif

Instrucciones

proyecto de importación

Dirección del código: github.com/shangjie119…

Arrastre la SJPopMenucarpeta al proyecto o use pod para importar el proyecto

pod 'SJPopMenu'

Este componente reduce el grado de acoplamiento con el proyecto original y apenas necesita cambiar el código del proyecto original.

usar

  1. Mostrar: [[Menú SJPopMenu] showBy:xxxxxx]
  2. Es necesario implementar el método en SJCustomSelectTextView. Si se trata de una vista de texto personalizada, simplemente cambie la clase principal de SJCustomSelectTextView a la vista de texto utilizada por el proyecto.
  3. El controlador necesita implementar 3 métodos y enviar una notificación para mostrar el menú correctamente al desplazarse
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"SJChangePopMenuIfNeeded" object:nil];
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    [[NSNotificationCenter defaultCenter] postNotificationName:@"SJShowPopMenuIfNeeded" object:nil];
}

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
    if (!decelerate) {
        [[NSNotificationCenter defaultCenter] postNotificationName:@"SJShowPopMenuIfNeeded" object:nil];
    }
}
  1. Haga clic en devolución de llamada de acción de menú usando menu.itemActions

Comparando el efecto de WeChat

1. Mantén presionado para seleccionar automáticamente todo el texto ✅

2. Seleccione algún texto para agregar seleccionar todas las funciones ✅

3. La parte seleccionada del texto actualmente admite la copia y el reenvío. La parte seleccionada del texto debe usarse ✅

4. Arrastre el texto seleccionado al azar para cambiar la posición del menú (parece que el menú no se puede mostrar hasta que se suelta la mano y la posición del menú cambia en tiempo real) ✅ ❌

5. Arrastre la celda actual para deslizar para ocultar el menú, deje de deslizar para mostrar el menú (cambie para deslizar para ocultar el menú) ✅

6. Cuando WeChat muestra el menú, el nuevo mensaje no se mostrará por el momento en que se recibe el mensaje, y el nuevo mensaje aparecerá cuando desaparezca el menú (cambie para recibir nuevos mensajes y deslice para cancelar el menú. Como Mientras se mantenga presionado WeChat en la página de chat, los nuevos mensajes no se actualizarán de inmediato. Siento que esto requiere un alto grado de acoplamiento, así que no lo hice) ✅

7. Mantenga presionado el menú de visualización y luego presione prolongadamente el menú de proceso para cancelar. Suelte el dedo para seleccionar una parte de WeChat (cambie a liberación del dedo o seleccione todo) ✅

8. Muestre el menú ¿A veces la vista de texto en otras áreas todavía está seleccionada? ? ? ¡Esto es un error! ! De vez en cuando preocuparme por la gente... ❌

imagen.png

Haga clic en el área roja, el menú no desaparecerá, no hay una buena manera en este momento.

Bienvenido al intercambio

Si tiene una solución al problema anterior, bienvenido a comunicarse. Puede emitirme a través de github  o enviarme un correo electrónico a [email protected]

Si hay otros problemas en uso, también pueden comunicarse entre sí.

Por último, pon un enlace de descarga.

¡Dale un pequeño ⭐️⭐️ si te gusta! ! !

Supongo que te gusta

Origin juejin.im/post/7117074340973117477
Recomendado
Clasificación