SLPagingView
SLPagingView copied to clipboard
Not seeing tabs when I used the SLPagingViewController inside a ViewController
I have an iOS app where ViewController is the default view controller. The implementation of ViewController looks like this
#import "ViewController.h"
#import "SLPagingViewController.h"
#import "UIColor+SLAddition.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidAppear:(BOOL)animated {
UIColor *orange = [UIColor colorWithRed:255/255
green:69.0/255
blue:0.0/255
alpha:1.0];
UIColor *gray = [UIColor colorWithRed:.84
green:.84
blue:.84
alpha:1.0];
UIImage *img1 = [UIImage imageNamed:@"gear"];
img1 = [img1 imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
UIImage *img2 = [UIImage imageNamed:@"profile"];
img2 = [img2 imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
UIImage *img3 = [UIImage imageNamed:@"chat"];
img3 = [img3 imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
NSArray *titles = @[[[UIImageView alloc] initWithImage:img1], [[UIImageView alloc] initWithImage:img2], [[UIImageView alloc] initWithImage:img3]];
UIView *orangeView = [self viewWithBackground:[UIColor orangeColor]];
UIView *yellowView = [self viewWithBackground:[UIColor yellowColor]];
UIView *blueView = [self viewWithBackground:[UIColor blueColor]];
NSArray *views = @[orangeView, yellowView, blueView];
SLPagingViewController *pageViewController = [[SLPagingViewController alloc] initWithNavBarItems:titles
navBarBackground:[UIColor whiteColor]
views:views
showPageControl:NO];
pageViewController.navigationSideItemsStyle = SLNavigationSideItemsStyleOnBounds;
float minX = 45.0;
// Tinder Like
pageViewController.pagingViewMoving = ^(NSArray *subviews){
float mid = [UIScreen mainScreen].bounds.size.width/2 - minX;
float midM = [UIScreen mainScreen].bounds.size.width - minX;
for(UIImageView *v in subviews){
UIColor *c = gray;
if(v.frame.origin.x > minX
&& v.frame.origin.x < mid)
// Left part
c = [UIColor gradient:v.frame.origin.x
top:minX+1
bottom:mid-1
init:orange
goal:gray];
else if(v.frame.origin.x > mid
&& v.frame.origin.x < midM)
// Right part
c = [UIColor gradient:v.frame.origin.x
top:mid+1
bottom:midM-1
init:gray
goal:orange];
else if(v.frame.origin.x == mid)
c = orange;
v.tintColor= c;
}
};
[pageViewController setNavigationBarColor:[UIColor greenColor]];
[self presentViewController:pageViewController animated:YES completion:nil];
}
-(UIView*)viewWithBackground:(UIColor *)color{
UIView *v = [UIView new];
v.backgroundColor = color;
return v;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
However, with the above code, the orange, yellow and blue views fill the whole screen and the tabs are not visible. How do I make the tabs visible?