This repository was archived by the owner on Apr 24, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 231
Expand file tree
/
Copy pathHostViewController.m
More file actions
146 lines (110 loc) · 4.23 KB
/
HostViewController.m
File metadata and controls
146 lines (110 loc) · 4.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
//
// HostViewController.m
// ICViewPager
//
// Created by Ilter Cengiz on 28/08/2013.
// Copyright (c) 2013 Ilter Cengiz. All rights reserved.
//
#import "HostViewController.h"
#import "ContentViewController.h"
@interface HostViewController () <ICViewPagerControllerDataSource, ICViewPagerControllerDelegate>
@property (nonatomic) NSUInteger numberOfTabs;
@end
@implementation HostViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.dataSource = self;
self.delegate = self;
self.title = @"View Pager";
// Keeps tab bar below navigation bar on iOS 7.0+
// if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
// self.edgesForExtendedLayout = UIRectEdgeNone;
// }
self.navigationItem.rightBarButtonItem = ({
UIBarButtonItem *button;
button = [[UIBarButtonItem alloc] initWithTitle:@"Tab #5" style:UIBarButtonItemStylePlain target:self action:@selector(selectTabWithNumberFive)];
button;
});
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self performSelector:@selector(loadContent) withObject:nil afterDelay:3.0];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark - Setters
- (void)setNumberOfTabs:(NSUInteger)numberOfTabs {
// Set numberOfTabs
_numberOfTabs = numberOfTabs;
// Reload data
[self reloadData];
}
#pragma mark - Helpers
- (void)selectTabWithNumberFive {
[self selectTabAtIndex:5];
}
- (void)loadContent {
self.numberOfTabs = 10;
}
#pragma mark - Interface Orientation Changes
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
// Update changes after screen rotates
[self performSelector:@selector(setNeedsReloadOptions) withObject:nil afterDelay:duration];
}
#pragma mark - ICViewPagerDataSource
- (NSUInteger)numberOfTabsForViewPager:(ICViewPagerController *)viewPager {
return self.numberOfTabs;
}
- (UIView *)viewPager:(ICViewPagerController *)viewPager viewForTabAtIndex:(NSUInteger)index {
UILabel *label = [UILabel new];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont systemFontOfSize:12.0];
label.text = [NSString stringWithFormat:@"Tab #%i", index];
label.textAlignment = NSTextAlignmentCenter;
label.textColor = [UIColor blackColor];
[label sizeToFit];
return label;
}
- (UIViewController *)viewPager:(ICViewPagerController *)viewPager contentViewControllerForTabAtIndex:(NSUInteger)index {
ContentViewController *cvc = [self.storyboard instantiateViewControllerWithIdentifier:@"contentViewController"];
cvc.labelString = [NSString stringWithFormat:@"Content View #%i", index];
return cvc;
}
#pragma mark - ViewPagerDelegate
- (CGFloat)viewPager:(ICViewPagerController *)viewPager valueForOption:(ViewPagerOption)option withDefault:(CGFloat)value {
switch (option) {
case ViewPagerOptionStartFromSecondTab:
return 0.0;
case ViewPagerOptionCenterCurrentTab:
return 1.0;
case ViewPagerOptionTabLocation:
return 0.0;
case ViewPagerOptionTabHeight:
return 49.0;
case ViewPagerOptionTabOffset:
return 36.0;
case ViewPagerOptionTabWidth:
return UIInterfaceOrientationIsLandscape(self.interfaceOrientation) ? 128.0 : 96.0;
case ViewPagerOptionFixFormerTabsPositions:
return 1.0;
case ViewPagerOptionFixLatterTabsPositions:
return 1.0;
default:
return value;
}
}
- (UIColor *)viewPager:(ICViewPagerController *)viewPager colorForComponent:(ViewPagerComponent)component withDefault:(UIColor *)color {
switch (component) {
case ViewPagerIndicator:
return [[UIColor redColor] colorWithAlphaComponent:0.64];
case ViewPagerTabsView:
return [[UIColor lightGrayColor] colorWithAlphaComponent:0.32];
case ViewPagerContent:
return [[UIColor darkGrayColor] colorWithAlphaComponent:0.32];
default:
return color;
}
}
@end