Skip to content
This repository has been archived by the owner on Aug 25, 2023. It is now read-only.

ContextualMenu

imchristian_g edited this page Mar 20, 2018 · 1 revision

contextualmenudemo

Menú que se despliega al hacer long press mostrando distintos circulos para cada opción rodeando la posición en la que se hizo el long press.

Uso

Primero instanciamos el MLContextualMenu y asignamos los datasources y delegates.

	MLContextualMenu *contextualMenu = [[MLContextualMenu alloc] init];
	contextualMenu.dataSource = self;
	contextualMenu.delegate = self;

Luego tomamos el gesturerecognizer y lo asignamos a la vista que lo va a contener, de esa forma se mantiene en memoria con la misma vista.

	UILongPressGestureRecognizer *gestureRecognizer = [contextualMenu gestureRecognizerWithDelegate:self];
	[self.collectionView addGestureRecognizer:gestureRecognizer];

Para no interferir con el scrolling agregamos la siguiente función.

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
	BOOL isScrolling = self.collectionView.isDragging || self.collectionView.isDecelerating;
	return !([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]] && isScrolling);
}

Datasources

Devuelve un array con los items que se van a mostrar (de tipo MLContextualMenuItem).

- (NSArray<MLContextualMenuItem *> *)contextualMenu:(MLContextualMenu *)contextualMenu itemsAtPoint:(CGPoint)point;

Devuelve si se debe mostrar o no el ContextualMenu.

- (BOOL)contextualMenu:(MLContextualMenu *)contextualMenu shouldShowMenuAtPoint:(CGPoint)point;

Delegates

Acción a realizar cuando se selecciona un item del ContextualMenu.

- (void)contextualMenu:(MLContextualMenu *)contextualMenu didSelectItemAtIndex:(NSInteger)selectedIndex atPoint:(CGPoint)point;
Clone this wiki locally