• Stars
    star
    204
  • Rank 192,063 (Top 4 %)
  • Language
    Objective-C
  • License
    Other
  • Created almost 13 years ago
  • Updated almost 12 years ago

Reviews

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

Repository Details

VPPDropDown is an iOS library that allows you to create dropdown-like menus in a table view, as seen in old Twitter 3 for iPhone.

VPPDropDown 0.3.0

VPPDropDown is an iOS library that allows you to create dropdown-like menus in a table view, as seen in old Twitter 3 for iPhone.

You can create three kinds of dropdown menus:

  • Disclosure, childs of drop down cell are treated as disclosure cells, useful for grouping detailed view controllers.
  • Selection, childs of drop down cell are treated as selection cells, useful for editing preferences.
  • Custom, childs of drop down cell should be decorated by the delegate.

This project contains a sample application using it. Just open the project in XCode, build it and run it.

For full documentation check out http://vicpenap.github.com/VPPDropDown

Using the component

First create a dropdown instance with any constructor. For example:

[[VPPDropDown alloc] initSelectionWithTitle:@"Selection Combo"
                                      tableView:self.tableView
                                      indexPath:[NSIndexPath indexPathForRow:kRowDropDownSelection inSection:kSection1] 
                                       delegate:self 
                                  selectedIndex:1
                                  elementTitles:@"Option 1", @"Option 2", @"Option 3", nil];

Now, fill your table view data source and delegate for example as follows:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
	// Return the number of rows in the section.
	int rows = [VPPDropDown tableView:tableView numberOfExpandedRowsInSection:section];
	switch (section) {
		case kSection1:
			rows += kNumberOfRowsInSection1;
			break;
		case kSection2:
			rows += kNumberOfRowsInSection2;
			break;

		}
		return rows;
}

Where kNumberOfRowsInSection1 and kNumberOfRowsInSection2 indicate the amount of rows for those sections, without taking into account if the dropdowns are expanded or not.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
	...
	
	if ([VPPDropDown tableView:tableView dropdownsContainIndexPath:indexPath]) {
		return [VPPDropDown tableView:tableView cellForRowAtIndexPath:indexPath];
	}
	
	...
}

And the delegate:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
	...
	
	if ([VPPDropDown tableView:tableView dropdownsContainIndexPath:indexPath]) {
		[VPPDropDown tableView:tableView didSelectRowAtIndexPath:indexPath];
		return;
	}
	
	...
}

Now implement VPPDropDownDelegate and you're done!

Read the included example app for full information.

Screenshots

Changelog

  • 2012/02/08 (0.3.0)
    • Added ability to modify some dropdown status' properties, such as expanded or selectedIndex.
    • Added height method to be able to change the row's height according to the associated dropdown's element.
  • 2012/02/08 (0.2.2)
    • Fixed a bug that caused a crash when the first dropdown cell was not the first cell on its section.
  • 2012/02/08 (0.2.1)
    • Fixed a bug when adding new dropdown to an indexPath that was already used.
  • 2012/02/04 (0.2.0)
    • Added intelligent scrolling when expanding dropdowns.
    • Deprecated all methods using relative index paths.
  • 2011/01/24 (0.1.0)
    • Initial release.

License

Copyright (c) 2012 Vรญctor Pena Placer (@vicpenap) http://www.victorpena.es/

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

More Repositories

1

PrettyKit

PrettyKit for iOS is a small set of new widgets and UIKit subclasses that gives you a deeper UIKit customization. You will be able to change their background color, add gradients, shadows, etc.
Objective-C
1,222
star
2

VPPMap

VPPMap library for iOS simplifies the creation and management of a MKMapView, featuring automatic annotations management with their views and callouts, map region centering based on the current visible annotations, automatic annotation clustering, easy management of pins dropped by user, etc.
Objective-C
198
star
3

VPPCoreData

VPPCoreData for iOS is a Core Data wrapper with Active Record support that simplifies the task of managing data with Core Data framework. This library offers an automatic setup of Core Data and a set of methods to set and retrieve data, both in foreground and background.
Objective-C
18
star
4

VPPLocation

VPPLocation Library for iOS simplifies the task of retrieving the user location and geocoder info about it.
Objective-C
15
star
5

VPPReachability

VPPReachability Library for iOS simplifies access to the status of a given hostname.
Objective-C
8
star
6

UIColor-Upgrades

This UIColor category improves UIColor class.
Objective-C
3
star
7

portfolio

A personal web portfolio made with Play! framework. Online in http://www.victorpena.es/
Java
2
star
8

VPPImageCaching

VPPImageCaching Library for iOS is a block-based, simple, in-memory image cache.
Objective-C
2
star
9

vicpenap.github.io

CSS
2
star
10

VPPForwardGeoLocation

VPPForwardGeoLocation for iOS is a block-based library that can get locations from a given search string, something like iOS Maps application.
Objective-C
2
star
11

ios_seminar

Small iOS seminar to start with iOS development.
Objective-C
1
star
12

markdown

Markdown plugin for Playframework
Java
1
star