diff --git a/MGTileMenu/MGTileMenuController.m b/MGTileMenu/MGTileMenuController.m index bd2bbc5..73ec3ef 100644 --- a/MGTileMenu/MGTileMenuController.m +++ b/MGTileMenu/MGTileMenuController.m @@ -959,6 +959,8 @@ - (void)animateTilesForCurrentPage currentTileIndex = (firstTileIndex + i); shouldHide = (i > (numVisibleTiles - 1)); if (shouldHide) { + [tileButton setTitle:nil forState:UIControlStateNormal]; + [tileButton setTitle:nil forState:UIControlStateHighlighted]; [tileButton setImage:nil forState:UIControlStateNormal]; [tileButton setImage:nil forState:UIControlStateHighlighted]; [tileButton setBackgroundImage:nil forState:UIControlStateNormal]; @@ -976,10 +978,19 @@ - (void)animateTilesForCurrentPage completion:NULL]; } else { - tileImage = [_delegate imageForTile:currentTileIndex inMenu:self]; - [tileButton setImage:tileImage forState:UIControlStateNormal]; - [tileButton setImage:tileImage forState:UIControlStateHighlighted]; - [tileButton setBackgroundImage:[self tileBackgroundImageForTile:currentTileIndex highlighted:NO] + if (_delegate && [_delegate respondsToSelector:@selector(useLabelAsTitleInTile:inMenu:)] && [_delegate useLabelAsTitleInTile:currentTileIndex inMenu:self]) { + [tileButton setImage:nil forState:UIControlStateNormal]; + [tileButton setImage:nil forState:UIControlStateHighlighted]; + [tileButton setTitle:[_delegate labelForTile:currentTileIndex inMenu:self] forState:UIControlStateNormal]; + [tileButton setTitle:[_delegate labelForTile:currentTileIndex inMenu:self] forState:UIControlStateHighlighted]; + } else { + tileImage = [_delegate imageForTile:currentTileIndex inMenu:self]; + [tileButton setTitle:nil forState:UIControlStateNormal]; + [tileButton setTitle:nil forState:UIControlStateHighlighted]; + [tileButton setImage:tileImage forState:UIControlStateNormal]; + [tileButton setImage:tileImage forState:UIControlStateHighlighted]; + } + [tileButton setBackgroundImage:[self tileBackgroundImageForTile:currentTileIndex highlighted:NO] forState:UIControlStateNormal]; [tileButton setBackgroundImage:[self tileBackgroundImageForTile:currentTileIndex highlighted:YES] forState:UIControlStateHighlighted]; diff --git a/MGTileMenu/MGTileMenuDelegate.h b/MGTileMenu/MGTileMenuDelegate.h index 1f0f408..e47af9c 100644 --- a/MGTileMenu/MGTileMenuDelegate.h +++ b/MGTileMenu/MGTileMenuDelegate.h @@ -25,6 +25,7 @@ // N.B. Images are centered on the tile, and are not scaled. @optional - (BOOL)isTileEnabled:(NSInteger)tileNumber inMenu:(MGTileMenuController *)tileMenu; // zero-based tileNumber +- (BOOL)useLabelAsTitleInTile:(NSInteger)tileNumber inMenu:(MGTileMenuController *)tileMenu; // Tile backgrounds. @optional diff --git a/MGTileMenu/MLGViewController.m b/MGTileMenu/MLGViewController.m index c075f05..1b2782e 100644 --- a/MGTileMenu/MLGViewController.m +++ b/MGTileMenu/MLGViewController.m @@ -115,6 +115,14 @@ - (BOOL)isTileEnabled:(NSInteger)tileNumber inMenu:(MGTileMenuController *)tileM return YES; } +- (BOOL)useLabelAsTitleInTile:(NSInteger)tileNumber inMenu:(MGTileMenuController *)tileMenu { + if (tileNumber == 5 || tileNumber == 8) { + return YES; + } + + return NO; +} + - (void)tileMenu:(MGTileMenuController *)tileMenu didActivateTile:(NSInteger)tileNumber {