• Stars
    star
    887
  • Rank 49,763 (Top 2 %)
  • Language
    Objective-C
  • License
    Other
  • Created about 12 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Tile-based contextual menu for iPad and iPhone developers.

MGTileMenu

by Matt Gemmell

What is MGTileMenu?

MGTileMenu is an iOS GUI component, providing a pop-up tile-based contextual menu. It's designed for iOS 5, and uses ARC. It supports Retina and non-Retina devices, and works with VoiceOver. MGTileMenu is designed for use on iPad, but it will also work on iPhone and iPod touch.

You can read all about MGTileMenu (and its design) here.

MGTileMenu is released under an attribution license for free, and can also be licensed without the attribution requirement for a modest fee. MGTileMenu has no external dependencies.

Tile menus show five icon-tiles per 'page', with a sixth page-switching tile ("...") used to switch to successive pages of tiles. You can have any number of pages of tiles.

The placement of the page-switching tile depends on whether MGTileMenu is configured to be right-handed (the default) or left-handed, and will leave a gap for your finger in each case.

You can extensively configure MGTileMenu's behaviour and appearance. There's a delegate protocol to supply tile icons, and to customise tile backgrounds (with images, gradients or flat colours). MGTileMenu also posts various notifications which may be useful.

MGTileMenu is designed with convenience in mind. Its default appearance and behaviour have been configured to suit most situations, and it will try to behave intelligently to minimise the work you have to do when using it (for example, it will sanity-check and adjust the position you tell it to display at, to ensure it's fully visible, and will move to remain visible when the device rotates).

The controller's own properties and methods, and the delegate protocol, have similarly been designed for maximum convenience. You should find MGTileMenu very easy to integrate and use, with minimal additional effort.

Getting started

MGTileMenu includes a demo application, showing how to create and configure an example menu.

Essentially, MGTileMenu is a UIViewController subclass with a simple (and required) delegate protocol. It's used by instantiating the controller, then calling its displayMenuCenteredOnPoint:inView: method.

The files you'll need to copy into your own project are in the 'MGTileMenu' group in the Xcode project. There are 5 code files and 3 images. They are:

The remaining files in the Xcode project are included for demonstration purposes only. With the exception of the Instinctive Code logo PNG images, you're welcome to use them as you see fit.

Downloading the code

You can get MGTileMenu on github.

License

MGTileMenu is released under its own attribution license (which is included with the source code). You can also purchase a non-attribution license if you wish, via my online license store.

Support, bugs and feature requests

There is absolutely no support offered with this component. You're on your own! If you want to submit a feature request, please do so via the issue tracker on github.

If you want to submit a bug report, please also do so via the issue tracker, including a diagnosis of the problem and a suggested fix (in code). If you're using MGTileMenu, you're a developer - so I expect you to do your homework and provide a fix along with each bug report. You can also submit pull requests or patches.

Please don't submit bug reports without fixes!

More Repositories

1

MGSplitViewController

A flexible, advanced split-view controller for iPad developers.
Objective-C
1,521
star
2

MGTwitterEngine

Objective-C Twitter integration library for Mac OS X and iPhone. Official repository.
Objective-C
1,138
star
3

MGImageUtilities

Useful UIImage categories for iPhone/iPad developers.
Objective-C
827
star
4

MGTemplateEngine

Cocoa system to generate output based on templates and data, like Smarty etc.
Objective-C
483
star
5

MGWordCounter

Live word-counting for NSTextView on OS X and UITextView on iOS.
148
star
6

Shady

Dim your Mac's screen more than is normally possible, to soothe tired eyes.
Objective-C
81
star
7

footnotes-popover

Javascript to present HTML footnotes as a popover.
JavaScript
44
star
8

Jekyll-Multipage

Jekyll plugin to split posts across multiple pages, with extensive configuration options.
Ruby
43
star
9

author-marks

JavaScript to toggle highlighting HTML5 'mark' tags, to emphasise content.
JavaScript
40
star
10

TaskPaperRuby

Create and edit TaskPaper files in Ruby. Export to HTML and CSS, with Less-based auto-conversion of your TaskPaper theme.
Ruby
38
star
11

MGScopeBar

A flexible scope-bar control for OS X
Objective-C
22
star
12

Jekyll-Staging

A Ruby gem that stages and unstages draft posts for Jekyll's internal server
Ruby
12
star
13

Referrers

A Ruby script that reads Apache/NCSA-combined server logs and produces a report showing referring URLs.
Ruby
12
star
14

Jekyll-Posts-Word-Count

Jekyll plugin to give you the total, average, and longest word-count across all your posts.
Ruby
12
star
15

DOT-MGTextEntry

Text-entry menu plugin for the Raspberry Pi's Display-O-Tron HAT
Python
10
star
16

Calendar

Ruby script to show a monthly calendar, like `cal`, but with configurable output including command-line, HTML/CSS, and more.
Ruby
8
star
17

SkinnableApp

Demo of how to skin/style an OS X app using a WebView and CSS.
Objective-C
7
star
18

mgicon

OS X command-line tool to generate PNGs of the icons of specified files, or of generic file-extensions.
Objective-C
6
star
19

Liquid-Thousands-Separated-Filter

Liquid filter that adds thousands-separators to a number
Ruby
5
star
20

TouchTest

Interactive demo of how many simultaneous touches an iPad can track.
Objective-C
5
star
21

FolderSweep

Recursively traverse a folder-hierarchy quickly
Objective-C
4
star
22

jekyll-collection-toc

Jekyll include which makes a hierarchical linked table of contents (i.e. HTML list) for a given collection.
HTML
3
star
23

LiquidSpanClassBlock

A Liquid/Jekyll block-type tag that generates SPAN tags with CSS class(es) and optional TITLE attributes
Ruby
1
star
24

zmk-config

1
star
25

SourceLicense

My own source license, which is a permissive attribution license.
1
star
26

ExampleLiquidBlock

A basic example of a Liquid/Jekyll block-type tag
Ruby
1
star