Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jasonmorrissey/JMTabView
Stylish and animated tab view for iOS rendered entirely using core graphics.
https://github.com/jasonmorrissey/JMTabView
Last synced: 1 day ago
JSON representation
Stylish and animated tab view for iOS rendered entirely using core graphics.
- Host: GitHub
- URL: https://github.com/jasonmorrissey/JMTabView
- Owner: jasonmorrissey
- License: other
- Created: 2011-06-12T13:21:16.000Z (over 13 years ago)
- Default Branch: master
- Last Pushed: 2013-04-15T15:16:59.000Z (over 11 years ago)
- Last Synced: 2024-10-31T15:57:45.312Z (13 days ago)
- Language: Objective-C
- Homepage:
- Size: 197 KB
- Stars: 802
- Watchers: 32
- Forks: 123
- Open Issues: 10
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
- awesome - JMTabView - Stylish and animated tab view for iOS rendered entirely using core graphics. (etc)
- awesome - JMTabView - Stylish and animated tab view for iOS rendered entirely using core graphics. (etc)
README
## JMTabView
This is a dark-themed and easy to use tab view created entirely using Core Graphics, so that it is easy to drop-in to your projects and operates smoothly on iOS devices. The library itself will also be used in Alien Blue's upcoming iOS updates.
## How it looks
Here's what JMTabView looks like:
And on a retina display:
## Usage
A demo project is included in this repository so that you can dive right in. In brief, to draw the tab view, you can do the following:
`JMTabView * tabView = [[[JMTabView alloc] initWithFrame:frame] autorelease];`
`[tabView setDelegate:self];`
You can then add tab items:
`[tabView addTabItemWithTitle:@"One" icon:[UIImage imageNamed:@"icon1.png"]];`
By implementing the `tabView:didSelectTabAtIndex:` method, you will receive a callback when the tab selection changes.
## Flexibility
You can set the `icon:` to `nil` if you prefer to use text only, or `title:` to `nil` to show icons only.
If you prefer to use JMTabView as a **toolbar** you can use the `setMomentary:` method to change its selection behaviour.
JMTabView also supports the execution of blocks so that you can embed your logic per tab item, like this:
`[tabView addTabItemWithTitle:@"Tab" icon:nil executeBlock:^{
// do stuff after item has been selected
}];`## Customisation
You can subclass `JMTabItem` and `JMSelectionView` to completely customize the view of the tabs. For example, in the inclusive Demo you can see how I've customized the view to render tabs like this:
## Installation
If you prefer to use JMTabView as a dynamic library in your project, please be sure to add `-ObjC -all_load` to your target's `Other Linker Flags`. Alternatively, you can reference the .h and .m files directly.
## Acknowledgements
This project uses the UIView+Positioning and UIView+Size categories developed by the very talented [Kevin O'Neill](https://github.com/kevinoneill/Useful-Bits).
## License
JMTabView is BSD licensed, so you can freely use it in commercial applications.