This control combines the great HMSegmentedControl with a UIPageviewController that takes care of showing the right page when clicking on the HMSegmentedControl and updating the selection when the UIPageviewController scrolls.
Install with CocoaPods by adding the following to your Podfile:
platform :ios, '7.0'
pod 'THSegmentedPager', '~> 1.1.3'
Note: We follow http://semver.org for versioning the public API.
Or copy the THSegmentedPager/
directory from this repo into your project.
If you prefer the manual approach be aware that you'll need to import the dependencies which in this case are
This will cause some errors with imports not found correctly which you'll need to solve manually too
- Pull Request thx to JaxGit
- Fixed issue #12
- With this version we switch back to the original HMSegmentedControl and as he's dropping support for iOS6 we'll need to follow
- If it is used in a UINavigationController it will show the same Viewcontroller when it comes back
- Pull Request thx to noelrocha
- The control is now able to allocate viewcontrollers from the actual storyboard by just knowing a list of identifiers
This is a sample initialization taken from the ExampleProject.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
THSegmentedPager *pager = (THSegmentedPager *)self.window.rootViewController;
NSMutableArray *pages = [NSMutableArray new];
for (int i = 1; i < 4; i++) {
// Create a new view controller and pass suitable data.
SamplePagedViewController *pagedViewController = [pager.storyboard instantiateViewControllerWithIdentifier:@"SamplePagedViewController"];
[pagedViewController setViewTitle:[NSString stringWithFormat:@"Page %d",i]];
[pagedViewController.view setBackgroundColor:[UIColor colorWithHue:((i/8)%20)/20.0+0.02 saturation:(i%8+3)/10.0 brightness:91/100.0 alpha:1]];
[pages addObject:pagedViewController];
}
[pager setPages:pages];
return YES;
}
#Contributions
...are really welcome. If you have an idea just fork the library change it and if its useful for others and not affecting the functionality of the library for other users I'll insert it
###Contributors
- Added automated Tests
- Added Travis CI and Coverall.io support
Source code of this project is available under the standard MIT license. Please see the license file.